摘要:以下对安装客户端基本操作扩展及中的基本接口备忘。这里的只起到提供配置文件模板的作用。当多个元素的相同时,按照其的字典顺序排序。注意,需要事先运行。
Redis 安装以下对 Redis 安装、Redis 客户端基本操作、PHP-Redis 扩展及 PHP 中 Redis 的基本接口备忘。本机环境为 Mac。
首先需要下载 Redis,访问以下网址,选择 Stable 版本下载:
https://redis.io/download
进入解压后的文件夹,执行编译:
make
之后执行:
make install
这一步会将 Redis 常用的命令如:redis-server, redis-cli 等放入 /usr/local/bin 中,相当于添加了环境变量。
Redis 基本操作 Redis 服务端启动Redis 分为客户端和服务器端,首先我们需要启动服务端,执行:
redis-server
此时命令行会停滞在 Redis 服务启动提示信息中,表示现在 Redis 服务端正在运行,可以使用 Ctrl + Z 中止。
但是,我们更希望 Redis 可以作为一种服务运行于后台,此时需要修改 redis.conf 文件:
cd /your/path/to/redis/redis.conf
将 128 行的 daemonize 值修改为 yes,所在行数可能因版本而有所不同:
daemonize no => daemonize yes
然后重新启动 Redis:
redis-server /your/path/to/redis/redis.conf
注意,即使修改了 redis.conf,也需要在 redis-server 后加上这一参数,否则仍然会以默认配置启动。这里的 redis.conf 只起到提供配置文件模板的作用。
这之后可以查看当前运行的进程以检查 Redis 服务的启动情况:
ps aux|grep redis-server
停止服务可以执行:
redis-cli shutdownRedis 客户端
执行以下指令进入客户端:
redis-cli
当我们修改了默认端口号,或需要连接到远程时,可以使用:
redis-cli -h 127.0.0.7 -p 6379Redis 数据类型
Redis 中有五种数据类型:
string:键值对形式,键为字符串类型,而值可以为字符串或数字;
list:在两头进行插入或删除,可以模拟队列和栈;
set:集合,不同元素的值均不相同;
hash:通过键可以所索引到一组键值对,可以类比二维关联数组;
zset:有序集合,以 ( score, value ) 的方式组织,并会按照 score 值进行排序;
Redis 客户端基本操作以下只备忘简单指令,其他命令可以查阅:
https://redis.io/commands
以下指令需要进入 redis-cli 之后执行:
1. stringget key1 // 获取 key1 键对应的值,若不存在会输出 nil set key1 value1 // 设置 key1 => value1 键值对 set key2 123 // 设置 key2 为 123 incr key2 // 使 key2 对应的值自增 1 decr key2 // 使 key2 对应的值自减 1 incrby key2 10 // key2 对应的值加 10 decrby key2 10 // key2 对应的值减 102. list
lpush listA A // 向 listA 这一队列的左边加入 A rpush listA B // 向 listA 这一队列的右边加入 B lpop listA // 从 listA 这一队列的左边弹出第一个值 rpop listA // 向 listA 这一队列的右边弹出第一个值 llen listA // 得到 listA 的长度3. set
sadd setA A // 向 setA 这一集合中增加 A scard setA // 得到 setA 这一集合中的长度 sismember setA A // 判断 A 是否为 setA 集合中元素 srem setA A // 从 setA 集合中移除 A 元素4. hash
hset hashA key1 A // 向 hashA 中添加键值对 key1 => A hget hashA key1 // 得到 hashA 中键 key1 对应的值 hlen hashA // 得到 hashA 含有的键值对数 hmget hashA key1 key2 // 获得 hashA 中多个键对应的值5. zset
zadd zsetA 10.1 val1 // 向 zsetA 中加入 score 为 10.1 的 val1 zrange zsetA 0 4 // 获得 zsetA 中从小到大排序第 0 到第 4 的元素 // 获得 zsetA 中从小到大排序第 0 到第 4 的元素,输出时附带其对应的 score zrange zsetA 0 4 withscores
PHP-Redis 扩展注意,zset 中的排序按照 score 从小到大升序进行,第 0 为最小值。当多个元素的 score 相同时,按照其 value 的字典顺序排序。
我们使用 phpize 和 configure 进行扩展安装,可以通过 phpize -v 检查是否已经安装过 phpize,若没有,可以使用以下方式进行安装:
yum install php-devel下载扩展包
根据需要下载相应的扩展源码包:
PHP5: https://codeload.github.com/phpredis/phpredis/zip/develop PHP7: https://codeload.github.com/phpredis/phpredis/zip/php7编译扩展
解压后进入文件夹中,执行:
phpize
然后执行:
./configure -with-php-config=/your/path/to/php/bin/php-config
后面的路径会使得在之后的 make install 中将编译后的 redis.so 放到扩展指定的目录,省去了手动移动的步骤。
之后执行:
make
以及:
make install
添加扩展配置使用 MAMP 的同学在编译遇到问题时可以参见参考:MAMP环境下安装php扩展
最后,需要在配置文件添加扩展配置,可以使用以下指令查看 php.ini 文件的路径:
php --ini
之后编辑 php.ini 文件,添加:
extension=redis.so
这时便可以在 echo phpinfo(); 中看到 Redis 扩展的信息了。
注意:若之前没有使用 -with-php-config 参数,则需要在 make install 后,将生成的 modules/redis.so 移动到扩展所在目录中,该目录可以在 php.ini 中查看到:
extension_dir = /path/to/extensions/PHP 中使用 Redis
以下只罗列基础的使用方式,详细请参见 PHP-Redis 文档
PHP 中使用 Redis 的方式和通过 redis-cli 使用的方式基本相同。注意,需要事先运行 redis-server。
连接 Redis$redis = new Redis(); $redis->connect("localhost");string
$redis->set("key1", "value1"); // 设置键值对 $redis->get("key1"); // 获取值 $redis->set("number1", 123); $redis->incr("number1"); // 自增 $redis->decrBy("number1", 100); // 减法 $redis->get("number1");list
$redis->lPush("listA", "A"); // 向左侧加入值 $redis->lPush("listA", "B"); $redis->lPush("listA", "C"); // 从右侧弹出值,由此模拟队列 $redis->rPop("listA");set
$redis->sAdd("setA", "A"); $redis->sAdd("setA", "B"); $redis->sAdd("setA", "C"); $redis->sAdd("setA", "A"); $redis->sCard("setA"); $redis->sMembers("setA"); // 输出集合的全部元素hash
$redis->hSet("hashA", "name", "iname"); $redis->hSet("hashA", "age", "age"); // 同时设置多个值 $redis->hMset("hashA", [ "gender" => "male", "salary" => 12000 ]); $redis->hGet("hashA", "salary"); // 获得多个值 $redis->hMGet("hashA", ["name", "gender"]);zset
$redis->zAdd("ZSetA", 12, "A"); $redis->zAdd("ZSetA", 10.3, "B"); $redis->zAdd("ZSetA", 11.9, "C"); $redis->zAdd("ZSetA", 9.99, "D"); $redis->zRange("ZSetA", 0, 2); // 输出全部值 $redis->zRange("ZSetA", 0, -1); // 从大到小降序输出 $redis->zRevRange("ZSetA", 0, -1);
redis 五种数据类型的使用场景 - CSDN
redis---安装和开启和关闭 - CSDN
MAMP PRO安装PHP扩展的方法
MAMP环境下安装php扩展 - CSDN
Linux下Redis安装与PHP扩展(PHP7适用) - CSDN
Mac环境下安装Redis - 简书
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/22499.html
摘要:以下分别备忘版本的部分新增特性。而且,在生成器没有输出完全时,使用会报错。报错定义常量数组多声明数组解构运行时将部分指令转为机器码。对于计算密集型应用有较高的性能提升。 以下分别备忘 PHP 7.0 & 7.1 版本的部分新增特性。 PHP 7.0 ?? 运算符 $foo = null; $bar = $foo ?? 123; // 相当于 $bar = isset($bar) ? ...
本文关键阐述了运用Python完成简易短信验证码解决,文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,必须的朋友可以学习一下 前言 我们做获取数据时,太快或浏览经常,或一浏览便给弹出来短信验证码,随后蚌珠了~ 今天小编就给大家来个简易解决短信验证码的办法 自然环境控制模块 这儿需要使用一个ddddocr模块,这也是他人开源系统提前准备好的一样东西,简单又好用,可是精准度差一丢...
阅读 1406·2021-11-19 11:38
阅读 3562·2021-11-15 11:37
阅读 803·2021-09-30 09:48
阅读 945·2021-09-29 09:46
阅读 893·2021-09-23 11:22
阅读 1871·2019-08-30 15:44
阅读 3388·2019-08-26 13:58
阅读 2378·2019-08-26 13:26