phpRedis手册.docx
- 文档编号:4706412
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:10
- 大小:20.19KB
phpRedis手册.docx
《phpRedis手册.docx》由会员分享,可在线阅读,更多相关《phpRedis手册.docx(10页珍藏版)》请在冰豆网上搜索。
phpRedis手册
phpredis是php的一个扩展
Redis:
:
__construct构造函数
$redis=newRedis();
1、基本相关操作
connect,open链接redis服务
Functionconnect(host,port,timeout=0)
参数
host:
string,服务地址
port:
int,端口号
timeout:
float,链接时长(可选,默认为0,不限链接时间)
注:
在redis.conf中也有时间,默认为300
pconnect,popen不会主动关闭的链接
Functionpconnect(host,port,timeout=0)
参考上面
setOption设置redis模式
getOption查看redis设置的模式
ping查看连接状态
get得到某个key的值(string值)
Functionget(key)
如果该key不存在,returnfalse
set写入key和value(string值)
Functionset(key)
如果写入成功,returnture
setex带生存时间的写入值
$redis->setex('key',3600,'value');//setskey→value,with1hTTL.
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:
:
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事务的执行将失败(returnfalse)
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
1、
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);
2、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时,若遇到名称为keyi的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<0从尾到头删除|count|个值为value的元素
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.var_dump($redis->rpoplpush('x','y'));
var_dump($redis->lRange('x',0,-1));
var_dump($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"}
3、SET操作相关
sAdd
向名称为key的set中添加元素value,如果value存在,不写入,returnfalse
$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的元素个数
$redis->sCard('key')
sPop
随机返回并删除名称为key的set中一个元素
$redis->sPop('key')
sRandMember
随机返回名称为key的set中一个元素,不删除
$redis->sPop('key')
sInter
求交集
1、$redis->sInter(array('key1','key2'))or$redis->sInter('key1','key2')
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_*'oranarrayofpatterns,
'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,5
var_dump($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(sortedset)操作相关
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);//withscores$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);//withscores$redis->zRevRange('key',0,-1,true);
zRangeByScore,zRevRangeByScore
$redis->zRangeByScore(key,star,end,array(withscores,limit));
返回名称为key的zset中score>=star且score<=end的所有元素
zCount
$redis->zCount(key,star,end);
返回名称为key的zset中score>=star且score<=end的所有元素的个数
zRemRangeByScore,zDeleteRangeByScore
$redis->zRemRangeByScore('key',star,end);
删除名称为key的zset中score>=star且score<=end的所有元素,返回删除个数
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
aggregateFunctionEither"SUM","MIN",or"MAX":
definesthebehaviourtouseonduplicateentriesduringthezUnion.
对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);//switchtoDB0
$redis->set('x','42');//write42tox
$redis->move('x',1);//movetoDB1
$redis->select
(1);//switchtoDB1
$redis->get('x');//willreturn42
rename,renameKey
给key重命名
$redis->set('x','42');
$redis->rename('x','y');
$redis->get('y');//→42
$redis->get('x');//→`FALSE`
renameNx
与remane类似,但是,如果重新命名的名字已经存在,不会替换成功
setTimeout,expire
设定一个key的活动时间(s)
$redis->setTimeout('x',3);
expireAt
key存活到一个unix时间戳时间
$redis->expireAt('x',time()+3);
keys,getKeys
返回满足给定pattern的所有ke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- phpRedis 手册