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
pconnect, popen 不会主动关闭的链接 
参考上面
setoption 设置redis模式
getoption 查看redis设置的模式
ping 查看连接状态
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’));
ttl 
得到一个key的生存时间
persist 
移除生存时间到期的key 
如果key到期 true 如果不到期 false
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
incr, incrby 
key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值 
redis?>incr(‘key1′);redis->incrby(‘key1’, 10);
decr, decrby 
做减法,使用方法同incr
getmultiple 
传参 
由key组成的数组 
返回参数 
如果key存在返回value,不存在返回false 
redis?>set(′key1′,′value1′);redis->set(‘key2’, ‘value2’); redis?>set(′key3′,′value3′);redis->getmultiple(array(‘key1’, ‘key2’, ‘key3’)); 
redis?>lrem(‘key1′,‘a′,2);redis->lrange(‘key1’, 0, -1);
list相关操作 
lpush 
$redis->lpush(key, value); 
在名称为key的list左边(头)添加一个值为value的 元素
rpush 
$redis->rpush(key, value); 
在名称为key的list右边(尾)添加一个值为value的 元素
lpushx/rpushx 
$redis->lpushx(key, value); 
在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加
lpop/rpop 
$redis->lpop(‘key’); 
输出名称为key的list左(头)起/右(尾)起的第一个元素,删除该元素
blpop/brpop 
$redis->blpop(‘key1’, ‘key2’, 10); 
lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作
lsize 
$redis->lsize(‘key’); 
返回名称为key的list有多少个元素
lindex, lget 
$redis->lget(‘key’, 0); 
返回名称为key的list中index位置的元素
lset 
$redis->lset(‘key’, 0, ‘x’); 
给名称为key的list中index位置的元素赋值为value
lrange, lgetrange 
$redis->lrange(‘key1’, 0, -1); 
返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)
ltrim, listtrim 
$redis->ltrim(‘key’, start, end); 
截取名称为key的list,保留start至end之间的元素
lrem, lremove 
$redis->lrem(‘key’, ‘a’, 2); 
删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count
linsert 
在名称为为key的list中,找到值为pivot 的value,并根据参数redis::before | redis::after,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1 
redis?>delete(′key1′);redis->linsert(‘key1’, redis::after, ‘a’, ‘x’); redis?>lpush(′key1′,′a′);redis->lpush(‘key1’, ‘b’); redis?>lpush(′key1′,′c′);redis->linsert(‘key1’, redis::before, ‘c’, ‘x’); 
redis?>lrange(‘key1′,0,?1);redis->linsert(‘key1’, redis::after, ‘c’, ‘y’); 
redis?>lrange(‘key1′,0,?1);redis->linsert(‘key1’, redis::after, ‘w’, ‘value’);
rpoplpush 
返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部 
redis?>delete(‘x′,‘y′);redis->lpush('x', 'abc'); redis?>lpush(‘x′,‘def′);redis->lpush('y', '123'); redis?>lpush(‘y′,‘456′);//movethelastofxtothefrontofy.vardump(redis->rpoplpush(‘x’, ‘y’)); 
var_dump(redis?>lrange(‘x′,0,?1));vardump(redis->lrange(‘y’, 0, -1)); 
string(3) “abc”  
array(1) { [0]=> string(3) “def” }  
array(3) { [0]=> string(3) “abc” [1]=> string(3) “456” [2]=> string(3) “123” }
set操作相关 
sadd 
向名称为key的set中添加元素value,如果value存在,不写入,return false 
$redis->sadd(key , value);
srem, sremove 
删除名称为key的set中的元素value 
redis?>sadd(‘key1′,‘set1′);redis->sadd(‘key1’ , ‘set2’); 
redis?>sadd(‘key1′,‘set3′);redis->srem(‘key1’, ‘set2’);
smove 
将value元素从名称为srckey的集合移到名称为dstkey的集合 
$redis->smove(seckey, dstkey, value);
sismember, scontains 
名称为key的集合中查找是否有value元素,有ture 没有 false 
$redis->sismember(key, value);
scard, ssize 
返回名称为key的set的元素个数
spop 
随机返回并删除名称为key的set中一个元素
srandmember 
随机返回名称为key的set中一个元素,不删除
sinter 
求交集
sinterstore 
求交集并将交集保存到output的集合 
$redis->sinterstore(‘output’, ‘key1’, ‘key2’, ‘key3’)
sunion 
求并集 
$redis->sunion(‘s0’, ‘s1’, ‘s2’); 
s0,s1,s2 同时求并集
sunionstore 
求并集并将并集保存到output的集合 
$redis->sunionstore(‘output’, ‘key1’, ‘key2’, ‘key3’);
sdiff 
求差集
sdiffstore 
求差集并将差集保存到output的集合
smembers, sgetmembers 
返回名称为key的set的所有元素
sort 
排序,分页等 
参数 
‘by’ => ‘some_pattern_*’, 
‘limit’ => array(0, 1), 
‘get’ => ‘some_other_pattern_*’ or an array of patterns, 
‘sort’ => ‘asc’ or ‘desc’, 
‘alpha’ => true, 
‘store’ => ‘external-key’ 
例子 
redis?>delete(′s′);redis->sadd(’s’, 5); redis?>sadd(′s′,4);redis->sadd(’s’, 2); redis?>sadd(′s′,1);redis->sadd(’s’, 3); 
var_dump(redis?>sort(′s′));//1,2,3,4,5vardump(redis->sort(’s’, array(‘sort’ => ‘desc’))); // 5,4,3,2,1 
var_dump($redis->sort(’s’, array(‘sort’ => ‘desc’, ‘store’ => ‘out’))); // (int)5
string命令 
getset 
返回原来key中的值,并将value写入key 
redis?>set(‘x′,‘42′);exvalue = redis?>getset(‘x′,‘lol′);//return‘42′,replacesxby‘lol′newvalue = $redis->get(‘x’)’ // return ‘lol’
append 
string,名称为key的string的值在后面加上value 
redis?>set(‘key′,‘value1′);redis->append(‘key’, ‘value2’); 
$redis->get(‘key’);
getrange (方法不存在) 
返回名称为key的string中start至end之间的字符 
redis?>set(‘key′,‘stringvalue′);redis->getrange(‘key’, 0, 5); 
$redis->getrange(‘key’, -5, -1);
setrange (方法不存在) 
改变key的string中start至end之间的字符为value 
redis?>set(‘key′,‘helloworld′);redis->setrange(‘key’, 6, “redis”); 
$redis->get(‘key’);
strlen 
得到key的string的长度 
$redis->strlen(‘key’);
getbit/setbit 
返回2进制信息
zset(sorted set)操作相关 
zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。 
redis?>zadd(‘key′,1,‘val1′);redis->zadd(‘key’, 0, ‘val0’); 
redis?>zadd(‘key′,5,‘val5′);redis->zrange(‘key’, 0, -1); // array(val0, val1, val5)
zrange(key, start, end,withscores):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素 
redis?>zadd(‘key1′,0,‘val0′);redis->zadd(‘key1’, 2, ‘val2’); 
redis?>zadd(‘key1′,10,‘val10′);redis->zrange('key1', 0, -1); // with scores $redis->zrange(‘key1’, 0, -1, true);
zdelete, zrem 
zrem(key, member) :删除名称为key的zset中的元素member 
redis?>zadd(‘key′,0,‘val0′);redis->zadd(‘key’, 2, ‘val2’); 
redis?>zadd(‘key′,10,‘val10′);redis->zdelete(‘key’, ‘val2’); 
$redis->zrange(‘key’, 0, -1); 
zrevrange(key, start, end,withscores):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素.withscores: 是否输出socre的值,默认false,不输出 
redis?>zadd(‘key′,0,‘val0′);redis->zadd(‘key’, 2, ‘val2’); 
redis?>zadd(‘key′,10,‘val10′);redis->zrevrange('key', 0, -1); // with scores $redis->zrevrange(‘key’, 0, -1, true);
zrangebyscore, zrevrangebyscore 
$redis->zrangebyscore(key, star, end, array(withscores, limit )); 
返回名称为key的zset中score >= star且score 
zcount 
$redis->zcount(key, star, end); 
返回名称为key的zset中score >= star且score 
zremrangebyscore, zdeleterangebyscore 
$redis->zremrangebyscore(‘key’, star, end); 
删除名称为key的zset中score >= star且score 
zsize, zcard 
返回名称为key的zset的所有元素的个数
zscore 
$redis->zscore(key, val2); 
返回名称为key的zset中元素val2的score
zrank, zrevrank 
$redis->zrevrank(key, val); 
返回名称为key的zset(元素已按score从小到大排序)中val元素的rank(即index,从0开始),若没有val元素,返回“null”。zrevrank 是从大到小排序
zincrby 
$redis->zincrby(‘key’, increment, ‘member’); 
如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment
zunion/zinter 
参数 
keyoutput 
arrayzsetkeys 
arrayweights 
aggregatefunction either “sum”, “min”, or “max”: defines the behaviour to use on duplicate entries during the zunion. 
对n个zset求并集和交集,并将最后的集合保存在dstkeyn中。对于集合中每一个元素的score,在进行aggregate运算前,都要乘以对于的weight参数。如果没有提供weight,默认为1。默认的aggregate是sum,即结果集合中元素的score是所有集合对应元素进行sum运算的值,而min和max是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。
hash操作 
hset 
$redis->hset(‘h’, ‘key1’, ‘hello’); 
向名称为h的hash中添加元素key1—>hello
hget 
$redis->hget(‘h’, ‘key1’); 
返回名称为h的hash中key1对应的value(hello)
hlen 
$redis->hlen(‘h’); 
返回名称为h的hash中元素个数
hdel 
$redis->hdel(‘h’, ‘key1’); 
删除名称为h的hash中键为key1的域
hkeys 
$redis->hkeys(‘h’); 
返回名称为key的hash中所有键
hvals 
$redis->hvals(‘h’) 
返回名称为h的hash中所有键对应的value
hgetall 
$redis->hgetall(‘h’); 
返回名称为h的hash中所有的键(field)及其对应的value
hexists 
$redis->hexists(‘h’, ‘a’); 
名称为h的hash中是否存在键名字为a的域
hincrby 
$redis->hincrby(‘h’, ‘x’, 2); 
将名称为h的hash中x的value增加2
hmset 
$redis->hmset(‘user:1’, array(‘name’ => ‘joe’, ‘salary’ => 2000)); 
向名称为key的hash中批量添加元素
hmget 
$redis->hmget(‘h’, array(‘field1’, ‘field2’)); 
返回名称为h的hash中field1,field2对应的value
redis 操作相关 
flushdb 
清空当前数据库
flushall 
清空所有数据库
randomkey 
随机返回key空间的一个key 
key=redis->randomkey();
select 
选择一个数据库 
move 
转移一个key到另外一个数据库 
redis?>select(0);//switchtodb0redis->set(‘x’, ‘42’); // write 42 to x 
redis?>move(‘x′,1);//movetodb1redis->select(1); // switch to db 1 
$redis->get(‘x’); // will return 42
rename, renamekey 
给key重命名 
redis?>set(‘x′,‘42′);redis->rename(‘x’, ‘y’); 
redis?>get(‘y′);//→42redis->get(‘x’); // → false
renamenx 
与remane类似,但是,如果重新命名的名字已经存在,不会替换成功
settimeout, expire 
设定一个key的活动时间(s) 
$redis->settimeout(‘x’, 3);
expireat 
key存活到一个unix时间戳时间 
$redis->expireat(‘x’, time() + 3);
keys, getkeys 
返回满足给定pattern的所有key 
keywithuserprefix=redis->keys(‘user*’);
dbsize 
查看现在数据库有多少key 
count=redis->dbsize();
auth 
密码认证 
$redis->auth(‘foobared’);
bgrewriteaof 
使用aof来进行数据库持久化 
$redis->bgrewriteaof();
slaveof 
选择从服务器 
$redis->slaveof(‘10.0.1.7’, 6379);
save 
将数据同步保存到磁盘
bgsave 
将数据异步保存到磁盘
lastsave 
返回上次成功将数据保存到磁盘的unix时戳
info 
返回redis的版本信息等详情
type 
返回key的类型值 
string: redis::redis_string 
set: redis::redis_set 
list: redis::redis_list 
zset: redis::redis_zset 
hash: redis::redis_hash 
other: redis::redis_not_found
                    以上就介绍了php-redis中文文档,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
   
 
   