在 http://www.redis.net.cn/ 能找到所有关于redis的信息,包括安装、命令、在编程语言中的使用等等。这里就不讲如何安装redis了,因为在上面的网站中都能找到。下面直接讲redis是如何在php中使用的,这里我选择的是phpredis扩展。
1. 下载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); //移除集合内多个元素