这篇文章给大家分享的是有关php操作redis方法示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

php的框架有哪些

php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为Web项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。

**php.ini文件添加:extension=php_redis.dll重启php,phpinfo可以看到redis则证明安装成功**

php连接redis测试

<?php$redis=newRedis();$redis->connect('127.0.0.1',6379);//serveripport$redis->auth('mypassword');//myredispassword$redis->set("test","HelloWorld");echo$redis->get("test");

php操作redis函数封装

/***如果不传入$host和$port默认读取Laravel环境变量的参数*redisSet/setex封装,可直接传入数组,可设置过期时间written:yangxingyi*/functionRedisSet($key,$value,$expire=0,$host='',$port=''){if(!$key||!$value)returnfalse;$host=$host?$host:getenv('REDIS_HOST');$port=$port?$port:getenv('REDIS_PORT');$redis=newRedis();$redis->connect($host,$port);$value=is_array($value)?json_encode($value):$value;return$expire>0?$redis->setex(getenv('REDIS_PREFIX').$key,$expire,$value):$redis->set(getenv('REDIS_PREFIX').$key,$value);}/***redisget封装,如果传入的是数组,返回的也是数组,同理字符串written:yangxingyi*/functionRedisGet($key,$host='',$port=''){$redis=newRedis();$host=$host?$host:getenv('REDIS_HOST');$port=$port?$port:getenv('REDIS_PORT');$redis->connect($host,$port);$result=$redis->get(getenv('REDIS_PREFIX').$key);returnis_null(json_decode($result))?$result:json_decode($result,true);}

php操作redis大全,基本上php操作redis常用的函数都在下面了

setex带生存时间的写入值$redis->setex('key',3600,'value');setnx判断是否重复的,写入值,如存在了不修改返回0,不存在就添加返回1$redis->setnx('key','value');返回已经删除key$redis->delete('key1');成功返回1失败返回0$redis->delete('key1','key2');删除两个键成功返回1失败返回0查询生存时间$redis->ttl('key1');持久化的返回-1,有生存时间的返回时间(单位秒)同时给多个key赋值,同时设置key0和key1$redis->mset(array('key0'=>'value0','key1'=>'value1'));key中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值$redis->incr('key1');$redis->incrBy('key1',10);减法跟加法一样$redis->decr("key1");减少1$redis->decrBy("key1",5)减少5list相关操作,连表操作lPush$redis->lPush("list","888");$id=$redis->lpush('list','HHHHHHH');echo$id;返回链表的元素个数$redi->lrange('list',0,-1);返回全部数据,数组形式$redis->lrange('list',0,2);返回连表0-2坐标的三个元素lPushx/rPushx$redis->lPushx(key,value);在名称为key的list左边(头)/右边(尾)添加一个值为value的元素,如果value已经存在,则不添加$redis->lpop('list');输出链表最左边的ksy的值,输出后删除掉这个key$redis->rpop('list');输出链表最右边的ksy的值,输出后删除掉这个key$redis->lset('list',7,"update");修改坐标为7的值,成功返回1集合:sadd,sadd是无序的集合,每次插入集合的时候都可能会弄乱里面集合的排序sadds1zhangsansadds1lisisadds1wangwusaddt1yangxingyisaddt1lileisaddt1zhangsansmemberss1s1的所有集合内容sdiffs1t1s1有的,t1没有的,差集$redis->sinter('s1','t1');返回s1和t1两个集合都有的,数组形式scards1返回s1集合里面的个数,有多少个就返回多少个,没有从0开始的,坐标才从0开始的spop抽奖场景,返回集合里面随机的数spops1默认返回1个,返回后就删除这个数,中奖了就不能再中了$i=$redis->spop('s1');var_dump($i);返回一个数,返回后删除这个数$i=$redis->spop('s1',2);var_dump($i);不能返回两个的,提示错误的随机返回集合里面的一个元素,但不删除,重复中奖$i=$redis->srandmember('s1');echo$i;sismembers1zhangsan查询张三在不在集合里面,在1,不在false$i=$redis->sismember('s1','zhangsan2');echo$i;在1,不在falsezaddkey2value有序集合zaddy11zhangsan;zaddy13lisi;zaddy12wangwu;zrangey10-1;排序就是,根据插入的时候的排序从小到达zhangsan,wangwu,lisi$i=$redis->zrange('y1',0,-1);var_dump($i);返回数组,键值不是插入时候给的键,是从0开始的新键zrevrangey10-1;反转排序,插入的时候键值越高,排序越优先zcardy1;获取有序集合里面的个数,有多少个就返回多少个,没有从0开始的,坐标才从0开始的无序就scard,有序就zcard,有z没有ssInterStore求交集并将交集保存到output的集合$redis->sInterStore('output','key1','key2','key3')Hash操作hSet$redis->hSet('h','key1','hello');向名称为h的hash中添加元素key1—>hellohGet$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中所有键对应的valuehGetAll$redis->hGetAll('h');返回名称为h的hash中所有的键(field)及其对应的valuehExists$redis->hExists('h','a');名称为h的hash中是否存在键名字为a的域hIncrBy$redis->hIncrBy('h','x',2);将名称为h的hash中x的value增加2hMset$redis->hMset('user:1',array('name'=>'Joe','salary'=>2000));向名称为key的hash中批量添加元素hMGet$redis->hmGet('h',array('field1','field2'));返回名称为h的hash中field1,field2对应的valueredis操作相关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');//willreturn42rename,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);expireAtkey存活到一个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的版本信息等详情Redis::__construct构造函数$redis=newRedis();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带生存时间的写入值$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如果不到期falsemset(redis版本1.1以上才可以用)同时给多个key赋值$redis->mset(array('key0'=>'value0','key1'=>'value1'));multi,exec,discard进入或者退出事务模式参数可选Redis::MULTI或Redis::PIPELINE.默认是Redis::MULTIRedis::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不在falseincr,incrBykey中的值进行自增1,如果填写了第二个参数,者自增第二个参数所填的值$redis->incr('key1');$redis->incrBy('key1',10);decr,decrBy做减法,使用方法同incrgetMultiple传参由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时,若遇到名称为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位置的元素赋值为valuelRange,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"}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的元素个数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_*'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,5var_dump($redis->sort('s',array('sort'=>'desc')));//5,4,3,2,1var_dump($redis->sort('s',array('sort'=>'desc','store'=>'out')));//(int)5string命令getSet返回原来key中的值,并将value写入key$redis->set('x','42');$exValue=$redis->getSet('x','lol');//return'42',replacesxby'lol'$newValue=$redis->get('x')'//return'lol'appendstring,名称为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,zRemzRem(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的scorezRank,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的值为incrementzUnion/zInter参数keyOutputarrayZSetKeysarrayWeightsaggregateFunctionEither"SUM","MIN",or"MAX":definesthebehaviourtouseonduplicateentriesduringthezUnion.对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

感谢各位的阅读!关于“php操作redis方法示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!