Windows系统下PHP使用Redis
参考链接:https://www.cnblogs.com/lhat/p/6402472.html
环境:windows 10 64位操作系统
php 5.4
redis 3.0
1.redis的下载,安装
刚开始是使用https://github.com/MicrosoftArchive/redis/releases下载windows下的redis的,但无奈于网速太慢(架了梯子也没用)。后来在其github中找到了下面的下载地址:
https://github.com/ServiceStack/redis-windows/raw/master/downloads/redis-latest.zip
windows 运行(快捷键:windows键+R键),输入【cmd】命令,进入DOC操作系统窗口;
进入redis安装目录使用命令
- redis-server redis.windows.conf
启动redis 服务,此窗口无需关闭,关闭窗口就停止redis服务了,启动成功如下图:
新打开一个doc窗口,进入安装目录执行客户端启动命令【redis-cli】或者直接双击redis-cli.exe进行测试命令,创建并获取name值为tao数据:
2. 下载phpredis扩展
执行phpinfo()函数,根据下面截图中的“NTS”和“VCn”选择对应的压缩包,https://github.com/phpredis/phpredis/downloads。另外注意,PHP版本也要对应好。
2. PHP配置安装扩展
首先把压缩包中的 php_igbinary.dll和php_redis.dll 文件放到PHP安装目录的 ext 目录中
然后在 php.ini 添加如下配置
extension=php_igbinary.dll extension=php_redis.dll
3. 重启apache,执行phpinfo()函数,会发现多了redis的扩展。
4. 开启Redis服务,测试
$redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', '6379'); echo "Connection to server sucessfully <br/>"; //查看服务是否运行 echo "Server is running: " . $redis->ping();
结果如下,连接redis服务器成功
Connection to server sucessfully Server is running: +PONG
至此,我们可以在php中痛痛快快的使用redis了。
1 $redis = new Redis(); 2 //连接redis服务器 3 $redis->connect('127.0.0.1', '6379'); 4 5 6 $key = "key"; 7 $val = "val"; 8 9 //redis key操作 10 $redis->exists($key); //判断key值是否存在 11 $redis->expire($key, 10); //设置key在10秒后过期 12 13 //redis string 字符串 14 $redis->set($key, $val); 15 $redis->incr($key); //key值+1,除非val是整数,否则函数执行失败 16 $redis->decr($key); //key值-1,同上 17 $redis->append($key, "ue"); //追加key值内容 18 $redis->strlen($key); //返回key值的长度 19 20 //当第一次设置key值后,key值的数据类型就不能改变了。 21 $redis->del($key); //删除key值 22 23 //redis hash 哈希 24 $redis->hset($key, 'field1', 'val1'); //设置一个key-value键值对 25 $redis->hmset($key, array('field2'=>'val2', 'field3'=>'val3')); //设置多个k-v键值对 26 $redis->hget($key, 'field2'); //获取hash其中的一个键值 27 $redis->hmget($key, array('field2', 'field1')); //获取hash的多个键值 28 $redis->hgetall($key); //获取hash中所有的键值对 29 $redis->hlen($key); //获取hash中键值对的个数 30 $redis->hkeys($key); //获取hash中所有的键 31 $redis->hvals($key); //获取hash中所有的值 32 $redis->del($key); //删除key值 33 34 //redis list 列表 35 $index = $start = 0; 36 $redis->lpush($key, 'val1', 'val2'); //在list的开头添加多个值 37 $redis->lpop($key); //移除并获取list的第一个元素 38 $redis->rpop($key); //移除并获取list的最后一个元素 39 $stop = $redis->llen($key) - 1; //获取list的长度 40 $redis->lindex($key, $index); //通过索引获取list元素 41 $redis->lrange($key, $start, $stop); //获取指定范围内的元素 42 43 $redis->del($key); 44 45 //redis set 无序集合 46 $redis->sadd($key, 'val1', 'val2'); //向集合中添加多个元素 47 $redis->scard($key); //获取集合元素个数 48 $redis->spop($key); //移除并获取集合内随机一个元素 49 $redis->srem($key, 'val1', 'val2'); //移除集合的多个元素 50 $redis->sismember($key, 'val1'); //判断元素是否存在于集合内 51 52 $redis->del($key); 53 //redis sorted set 有序集合 54 //有序集合里的元素都和一个分数score关联,就靠这个分数score对元素进行排序 55 $redis->zadd($key, $score1, $val1, $score2, $val2); //向集合内添加多个元素 56 $redis->zcard($key); //获取集合内元素总数 57 $redis->zcount($key, $minScore, $maxScore); //获取集合内分类范围内的元素 58 $redis->zrem($key, $member1, $member2); //移除集合内多个元素