PHP缓存之redis中文文档
jopen
12年前
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系
很有用;以下是redis官方提供的命令使用技巧:
https://github.com/owlient/phpredis(支持redis 2.0.4)
Redis::__construct构造函数
$redis = new Redis();
connect, open 链接redis服务
参数 host: string,服务地址 port: int,端口号 timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间) 注: 在redis.conf中也有时间,默认为300
get 得到某个key的值(string值)
如果该key不存在,return false
set 写入key 和 value(string值)
如果写入成功,return ture
setex 带生存时间的写入值
$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
setnx 判断是否重复的,写入值
$redis->setnx('key', 'value'); $redis->setnx('key', 'value');
delete 删除指定key的值
返回已经删除key的个数(长整数) $redis->delete('key1', 'key2'); $redis->delete(array('key3', 'key4', 'key5'));
mset (redis版本1.1以上才可以用)
同时给多个key赋值 $redis->mset(array('key0' => 'value0', 'key1' => 'value1'));
multi, exec, discard进入或者退出事务模式
参数可选Redis::MULTI或Redis::PIPELINE. 默认是 Redis::MULTI Redis::MULTI:将多个操作当成一个事务执行 Redis::PIPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证 discard:删除一个事务 返回值 multi(),返回一个redis对象,并进入multi-mode模式,一旦进入multi-mode模式, 以后调用的所有方法都会返回相同的对象,只到exec()方法被调用。 watch, unwatch (代码测试后,不能达到所说的效果) 监测一个key的值是否被其它的程序更改。如果这个key在watch 和 exec (方法)间被修改, 这个 MULTI/EXEC 事务的执行将失败(return false) unwatch 取消被这个程序监测的所有key 参数,一对key的列表 $redis->watch('x'); $ret = $redis->multi() ->incr('x') ->exec(); subscribe * 方法回调。注意,该方法可能在未来里发生改变 publish * 发表内容到某一个通道。注意,该方法可能在未来里发生改变 exists 判断key是否存在。存在 true 不在 false
List链表型操作
1、list左边(头)添加一个值为value的元素,返回0和1
$redis - > [lr]push($key,$values);
[lr]Pushx 如果存在就不添加
[lr]Pop 删除,成功则返回删除元素
2、lSize 返回链表的元素个数
$redis -> lSize($key);
3、lSet 给key的list中index位置的元素赋值为value
$redis -> lSet($key,$index,$values);
4、lGet,IIndex 返回key的list中index位置的元素
$redis -> lGet($key,$index);
5、lRange,lGetRange 返回key的list中start 至 end 之间的元素(end=-1,返回所有),负值表示从后面开始计算
$redis -> lRange($key,$start,$end)
6、lTrim,listTrim 截取名称key的list,保留start - end 之间的元素
$redis -> lTrim($key,$start,$end);
7、lRem,lRemove 删除count个名称为key的list中值为value的元素。count=0,删除所有值为value的元素;count>0从头到尾删除count个值为value的元素,count<0从尾到头删除count个值为value的元素