php连接redis测试lt;?phpredisnewRedis();redisconnect(127。0。0。1,6379);serveripportredisauth(mypassword);myredispasswordredisset(test,HelloWorld);echoredisget(test);php操作redis函数封装如果不传入host和port默认读取Laravel环境变量的参数redisSetsetex封装,可直接传入数组,可设置过期时间written:yangxingyifunctionRedisSet(key,value,expire0,host,port){if(!key!value)returnfalse;hosthost?host:getenv(REDISHOST);portport?port:getenv(REDISPORT);redisnewRedis();redisconnect(host,port);valueisarray(value)?jsonencode(value):value;returnexpire0?redissetex(getenv(REDISPREFIX)。key,expire,value):redisset(getenv(REDISPREFIX)。key,value);}redisget封装,如果传入的是数组,返回的也是数组,同理字符串written:yangxingyifunctionRedisGet(key,host,port){redisnewRedis();hosthost?host:getenv(REDISHOST);portport?port:getenv(REDISPORT);redisconnect(host,port);resultredisget(getenv(REDISPREFIX)。key);returnisnull(jsondecode(result))?result:jsondecode(result,true);}php操作redis大全,基本上php操作redis常用的函数都在下面了setex带生存时间的写入值redissetex(key,3600,value);setnx判断是否重复的,写入值,如存在了不修改返回0,不存在就添加返回1redissetnx(key,value);返回已经删除keyredisdelete(key1);成功返回1失败返回0redisdelete(key1,key2);删除两个键成功返回1失败返回0查询生存时间redisttl(key1);持久化的返回1,有生存时间的返回时间(单位秒)同时给多个key赋值,同时设置key0和key1redismset(array(key0value0,key1value1));key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值redisincr(key1);redisincrBy(key1,10);减法跟加法一样redisdecr(key1);减少1redisdecrBy(key1,5)减少5list相关操作,连表操作lPushredislPush(list,888);idredislpush(list,HHHHHHH);echoid;返回链表的元素个数redilrange(list,0,1);返回全部数据,数组形式redislrange(list,0,2);返回连表02坐标的三个元素lPushxrPushxredislPushx(key,value);在名称为key的list左边(头)右边(尾)添加一个值为value的元素,如果value已经存在,则不添加redislpop(list);输出链表最左边的ksy的值,输出后删除掉这个keyredisrpop(list);输出链表最右边的ksy的值,输出后删除掉这个keyredislset(list,7,update);修改坐标为7的值,成功返回1集合:sadd,sadd是无序的集合,每次插入集合的时候都可能会弄乱里面集合的排序sadds1zhangsansadds1lisisadds1wangwusaddt1yangxingyisaddt1lileisaddt1zhangsansmemberss1s1的所有集合内容sdiffs1t1s1有的,t1没有的,差集redissinter(s1,t1);返回s1和t1两个集合都有的,数组形式scards1返回s1集合里面的个数,有多少个就返回多少个,没有从0开始的,坐标才从0开始的spop抽奖场景,返回集合里面随机的数spops1默认返回1个,返回后就删除这个数,中奖了就不能再中了iredisspop(s1);vardump(i);返回一个数,返回后删除这个数iredisspop(s1,2);vardump(i);不能返回两个的,提示错误的随机返回集合里面的一个元素,但不删除,重复中奖iredissrandmember(s1);echoi;sismembers1zhangsan查询张三在不在集合里面,在1,不在falseiredissismember(s1,zhangsan2);echoi;在1,不在falsezaddkey2value有序集合zaddy11zhangsan;zaddy13lisi;zaddy12wangwu;zrangey101;排序就是,根据插入的时候的排序从小到达zhangsan,wangwu,lisiirediszrange(y1,0,1);vardump(i);返回数组,键值不是插入时候给的键,是从0开始的新键zrevrangey101;反转排序,插入的时候键值越高,排序越优先zcardy1;获取有序集合里面的个数,有多少个就返回多少个,没有从0开始的,坐标才从0开始的无序就scard,有序就zcard,有z没有ssInterStore求交集并将交集保存到output的集合redissInterStore(output,key1,key2,key3)Hash操作hSetredishSet(h,key1,hello);向名称为h的hash中添加元素key1hellohGetredishGet(h,key1);返回名称为h的hash中key1对应的value(hello)hLenredishLen(h);返回名称为h的hash中元素个数hDelredishDel(h,key1);删除名称为h的hash中键为key1的域hKeysredishKeys(h);返回名称为key的hash中所有键hValsredishVals(h)返回名称为h的hash中所有键对应的valuehGetAllredishGetAll(h);返回名称为h的hash中所有的键(field)及其对应的valuehExistsredishExists(h,a);名称为h的hash中是否存在键名字为a的域hIncrByredishIncrBy(h,x,2);将名称为h的hash中x的value增加2hMsetredishMset(user:1,array(nameJoe,salary2000));向名称为key的hash中批量添加元素hMGetredishmGet(h,array(field1,field2));返回名称为h的hash中field1,field2对应的valueredis操作相关flushDB清空当前数据库flushAll清空所有数据库randomKey随机返回key空间的一个keykeyredisrandomKey();select选择一个数据库move转移一个key到另外一个数据库redisselect(0);switchtoDB0redisset(x,42);write42toxredismove(x,1);movetoDB1redisselect(1);switchtoDB1redisget(x);willreturn42rename,renameKey给key重命名redisset(x,42);redisrename(x,y);redisget(y);42redisget(x);FALSErenameNx与remane类似,但是,如果重新命名的名字已经存在,不会替换成功setTimeout,expire设定一个key的活动时间(s)redissetTimeout(x,3);expireAtkey存活到一个unix时间戳时间redisexpireAt(x,time()3);keys,getKeys返回满足给定pattern的所有keykeyWithUserPrefixrediskeys(user);dbSize查看现在数据库有多少keycountredisdbSize();auth密码认证redisauth(foobared);bgrewriteaof使用aof来进行数据库持久化redisbgrewriteaof();slaveof选择从服务器redisslaveof(10。0。1。7,6379);save将数据同步保存到磁盘bgsave将数据异步保存到磁盘lastSave返回上次成功将数据保存到磁盘的Unix时戳info返回redis的版本信息等详情Redis::construct构造函数redisnewRedis();connect,open链接redis服务参数host:string,服务地址port:int,端口号timeout:float,链接时长(可选,默认为0,不限链接时间)注:在redis。conf中也有时间,默认为300pconnect,popen不会主动关闭的链接参考上面setOption设置redis模式getOption查看redis设置的模式ping查看连接状态get得到某个key的值(string值)如果该key不存在,returnfalseset写入key和value(string值)如果写入成功,returnturesetex带生存时间的写入值redissetex(key,3600,value);setskeyvalue,with1hTTL。setnx判断是否重复的,写入值redissetnx(key,value);redissetnx(key,value);delete删除指定key的值返回已经删除key的个数(长整数)redisdelete(key1,key2);redisdelete(array(key3,key4,key5));ttl得到一个key的生存时间persist移除生存时间到期的key如果key到期true如果不到期falsemset(redis版本1。1以上才可以用)同时给多个key赋值redismset(array(key0value0,key1value1));multi,exec,discard进入或者退出事务模式参数可选Redis::MULTI或Redis::PIPELINE。默认是Redis::MULTIRedis::MULTI:将多个操作当成一个事务执行Redis::PIPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证discard:删除一个事务返回值multi(),返回一个redis对象,并进入multimode模式,一旦进入multimode模式,以后调用的所有方法都会返回相同的对象,只到exec()方法被调用。watch,unwatch(代码测试后,不能达到所说的效果)监测一个key的值是否被其它的程序更改。如果这个key在watch和exec(方法)间被修改,这个MULTIEXEC事务的执行将失败(returnfalse)unwatch取消被这个程序监测的所有key参数,一对key的列表rediswatch(x);retredismulti()incr(x)exec();subscribe方法回调。注意,该方法可能在未来里发生改变publish发表内容到某一个通道。注意,该方法可能在未来里发生改变exists判断key是否存在。存在true不在falseincr,incrBykey中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值redisincr(key1);redisincrBy(key1,10);decr,decrBy做减法,使用方法同incrgetMultiple传参由key组成的数组返回参数如果key存在返回value,不存在返回falseredisset(key1,value1);redisset(key2,value2);redisset(key3,value3);redisgetMultiple(array(key1,key2,key3));redislRem(key1,A,2);redislRange(key1,0,1);list相关操作lPushredislPush(key,value);在名称为key的list左边(头)添加一个值为value的元素rPushredisrPush(key,value);在名称为key的list右边(尾)添加一个值为value的元素lPushxrPushxredislPushx(key,value);在名称为key的list左边(头)右边(尾)添加一个值为value的元素,如果value已经存在,则不添加lPoprPopredislPop(key);输出名称为key的list左(头)起右(尾)起的第一个元素,删除该元素blPopbrPopredisblPop(key1,key2,10);lpop命令的block版本。即当timeout为0时,若遇到名称为keyi的list不存在或该list为空,则命令结束。如果timeout0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi1开始的list执行pop操作lSizeredislSize(key);返回名称为key的list有多少个元素lIndex,lGetredislGet(key,0);返回名称为key的list中index位置的元素lSetredislSet(key,0,X);给名称为key的list中index位置的元素赋值为valuelRange,lGetRangeredislRange(key1,0,1);返回名称为key的list中start至end之间的元素(end为1,返回所有)lTrim,listTrimredislTrim(key,start,end);截取名称为key的list,保留start至end之间的元素lRem,lRemoveredislRem(key,A,2);删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count0从头至尾删除count个值为value的元素,count0从尾到头删除count个值为value的元素lInsert在名称为为key的list中,找到值为pivot的value,并根据参数Redis::BEFORERedis::AFTER,来确定,newvalue是放在pivot的前面,或者后面。如果key不存在,不会插入,如果pivot不存在,return1redisdelete(key1);redislInsert(key1,Redis::AFTER,A,X);redislPush(key1,A);redislPush(key1,B);redislPush(key1,C);redislInsert(key1,Redis::BEFORE,C,X);redislRange(key1,0,1);redislInsert(key1,Redis::AFTER,C,Y);redislRange(key1,0,1);redislInsert(key1,Redis::AFTER,W,value);rpoplpush返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部redisdelete(x,y);redislPush(x,abc);redislPush(x,def);redislPush(y,123);redislPush(y,456);movethelastofxtothefrontofy。vardump(redisrpoplpush(x,y));vardump(redislRange(x,0,1));vardump(redislRange(y,0,1));string(3)abcarray(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存在,不写入,returnfalseredissAdd(key,value);sRem,sRemove删除名称为key的set中的元素valueredissAdd(key1,set1);redissAdd(key1,set2);redissAdd(key1,set3);redissRem(key1,set2);sMove将value元素从名称为srckey的集合移到名称为dstkey的集合redissMove(seckey,dstkey,value);sIsMember,sContains名称为key的集合中查找是否有value元素,有ture没有falseredissIsMember(key,value);sCard,sSize返回名称为key的set的元素个数sPop随机返回并删除名称为key的set中一个元素sRandMember随机返回名称为key的set中一个元素,不删除sInter求交集sInterStore求交集并将交集保存到output的集合redissInterStore(output,key1,key2,key3)sUnion求并集redissUnion(s0,s1,s2);s0,s1,s2同时求并集sUnionStore求并集并将并集保存到output的集合redissUnionStore(output,key1,key2,key3);sDiff求差集sDiffStore求差集并将差集保存到output的集合sMembers,sGetMembers返回名称为key的set的所有元素sort排序,分页等参数bysomepattern,limitarray(0,1),getsomeotherpatternoranarrayofpatterns,sortascordesc,alphaTRUE,storeexternalkey例子redisdelete(s);redissadd(s,5);redissadd(s,4);redissadd(s,2);redissadd(s,1);redissadd(s,3);vardump(redissort(s));1,2,3,4,5vardump(redissort(s,array(sortdesc)));5,4,3,2,1vardump(redissort(s,array(sortdesc,storeout)));(int)5string命令getSet返回原来key中的值,并将value写入keyredisset(x,42);exValueredisgetSet(x,lol);return42,replacesxbylolnewValueredisget(x)returnlolappendstring,名称为key的string的值在后面加上valueredisset(key,value1);redisappend(key,value2);redisget(key);getRange(方法不存在)返回名称为key的string中start至end之间的字符redisset(key,stringvalue);redisgetRange(key,0,5);redisgetRange(key,5,1);setRange(方法不存在)改变key的string中start至end之间的字符为valueredisset(key,Helloworld);redissetRange(key,6,redis);redisget(key);strlen得到key的string的长度redisstrlen(key);getBitsetBit返回2进制信息zset(sortedset)操作相关zAdd(key,score,member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。rediszAdd(key,1,val1);rediszAdd(key,0,val0);rediszAdd(key,5,val5);rediszRange(key,0,1);array(val0,val1,val5)zRange(key,start,end,withscores):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素rediszAdd(key1,0,val0);rediszAdd(key1,2,val2);rediszAdd(key1,10,val10);rediszRange(key1,0,1);withscoresrediszRange(key1,0,1,true);zDelete,zRemzRem(key,member):删除名称为key的zset中的元素memberrediszAdd(key,0,val0);rediszAdd(key,2,val2);rediszAdd(key,10,val10);rediszDelete(key,val2);rediszRange(key,0,1);zRevRange(key,start,end,withscores):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素。withscores:是否输出socre的值,默认false,不输出rediszAdd(key,0,val0);rediszAdd(key,2,val2);rediszAdd(key,10,val10);rediszRevRange(key,0,1);withscoresrediszRevRange(key,0,1,true);zRangeByScore,zRevRangeByScorerediszRangeByScore(key,star,end,array(withscores,limit));返回名称为key的zset中scorestar且scoreend的所有元素zCountrediszCount(key,star,end);返回名称为key的zset中scorestar且scoreend的所有元素的个数zRemRangeByScore,zDeleteRangeByScorerediszRemRangeByScore(key,star,end);删除名称为key的zset中scorestar且scoreend的所有元素,返回删除个数zSize,zCard返回名称为key的zset的所有元素的个数zScorerediszScore(key,val2);返回名称为key的zset中元素val2的scorezRank,zRevRankrediszRevRank(key,val);返回名称为key的zset(元素已按score从小到大排序)中val元素的rank(即index,从0开始),若没有val元素,返回null。zRevRank是从大到小排序zIncrByrediszIncrBy(key,increment,member);如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为incrementzUnionzInter参数keyOutputarrayZSetKeysarrayWeightsaggregateFunctionEitherSUM,MIN,orMAX:definesthebehaviourtouseonduplicateentriesduringthezUnion。对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。