《PHP中使用redis函数的正确使用方法.pdf》由会员分享,可在线阅读,更多相关《PHP中使用redis函数的正确使用方法.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PHP中使用redis函数的正确使用方法PHP中使用redis函数的正确使用方法1/*1.Connection*/2$redis=new Redis();3$redis-connect(127.0.0.1,6379,1);短链接,本地host,端口为6379,4超过1秒放弃链接5$redis-open(127.0.0.1,6379,1);/短链接(同上)6$redis-pconnect(127.0.0.1,6379,1);长链接,本地host,端口为6379,7超过1秒放弃链接8$redis-popen(127.0.0.1,6379,1);长链接(同上)9$redis-auth(passwor
2、d);登录验证密码,返回【trueI false10$redis-select(0);选择redis库,015共16个库11$redis-close();释放资源12$redis-ping();检查是否还再链接,pong13$redis-ttl(key);查看失效时间-1I timestamps 14$redis-persist(key);移除失效时间1 I 0J 15$redis-sort(key,$array);返回或保存给定列表、栠合、有序栠合key16中经过排序的元素,array为参数limit等!【配合array很强大】arrayI false 17/*2共性的运算归类18$redi
3、s-expire(key,10);设置失效时间trueI false 19$redis-move(key,15);把当前库中的key移动到15库中011)20/string 21$redis-strlen(key);获取当前key的长度22$redis-append(key,string);把string追加到key现有的value中追23加后的个数24$redis-incr(key);自增1,如不存在key,赋值为1(只对整数有效,存储以25 10进制64位,redis中为str)new_numI false)26$redis-incrby(key,$num);自增num,不存在为赋值,值需
4、为整数new_num27 1 false 28$redis-decr(key);自减1,new_num I false 29$redis-decrby(key,$num);自减num,new_num I false 30$redis-setex(key,10,value);/key=value,有效期为10秒true31/list 32$redis-llen(key);返回列表key的长度,不存在key返回0,len I 0)33/set 34$redis-scard(key);返回集合key的基数(集合中元素的数撇)。numI 0)35$redis-sMove(keyl,key2,membe
5、r);移动,将member元素从keyl36集合移动到key2集合。1I 01 37/Zset 38$redis-zcard(key);返回栠合key的基数(集合中元素的数最)。numI 0)39$redis-zcount(key,0,-1);返回有序栠key中,score值在min和max之40间(默认包括score值等千min或max)的成员。numI 0 41/hash 42$redis-hexists(key,field);查看hash中是否存在field,1I 0 43$redis-hincrby(key,field,$int_num);为哈希表key中的域field的44值加上量(
6、+1-)num,new_numI false 45$redis-hlen(key);返回哈希表key中域的数说。num I 0 46/*3.Server*/47$redis-dbSize();返回当前库中 的key的个数48$redis-flushAll();清空整个redis总true49$redis-flushDB();清空当前redis库总true50$redis-save();同步?把数据存储到磁盘dump.rdbtrue51$redis-bgsave();异步?把数据存储到磁盘dump.rdbtrue52$redis-info();查询当前redis的状态verson:2.4.5.5
7、3$redis-lastSave();上次存储时间key的时间timestamp54$redis-watch(key,keyn);监视一个(或多个)key,如果在事务执行之55前这个(或这些)key被其他命令所改动,那么事务将被打断true56$redis-unwatch(key,keyn);取消监视一个(或多个)keytrue 57$redis-multi(Redis:MULTI);开启事务,事务块内的多条命令会按照先后顺58序被放进一个队列当中,最后由EXEC命令在一个原子时间内执行。59$redis-multi(Redis:PIPELINE);开启 管道,事务块内的多条命令会按照先后60
8、顺序被放进一个队列当 中,最后由EXEC命令在一个原子时间内执行。61$redis-exec();执行所有事务块内的命令,;【事务块内所有命令的返回值,62按命令执行的先后顺序排列,当操作被打断时,返回空值false63/*4.String,键值对,创建更新同操作64$redis-set0ption(Redis:OPT_PREFIX,hf_);设置表前缀为hf_65$redis-set(key,1);设置key=aavalue=l true 66$redis-mset($arr);设置一个或多个键值true67$redis-setnx(key,value);/key=value,key存在返回
9、falseI true 68$redis-get(key);/获取keyvalue 69$redis-mget($arr);/(stringlarr),返回所查询键的值70$redis-del($key_arr);/(stringlarr)删除key,支持数组批批删除【返回删71除个数】72$redis-delete($key_str,$key2,$key3);删除keys,del_num73$redis-getset(old_key,new_value);先获得key的值,然后重新赋74值,old_valueI false 75/*5.List栈的结构,注总表头表尾,创建更新分开操作76$r
10、edis-lpush(key,value);增,只能将一个值value插入到列表key的77表头,不存在就创建列表的长度Ifalse 78$redis-rpush(key,value);增,只能将一个值value插入到列表key的79表尾列表的长度Ifalse 80$redis-1Insert(key ,Redis:AFTER,value,new_value);抖鲁,将81值value插入到列表key当中,位千值value之前或之后。new_lenI false 82$redis-lpushx(key,value);增,只能将一个值value插入到列表key的83表头,不存在不创建列表的长度I
11、false 84$redis-rpushx(key,value);增,只能将一个值value插入到列表key的85表尾,不存在不创建列表的长度Ifalse 86$redis-lpop(key);删,移除并返回列表key的头元素,被删元素Ifalse 87$redis-rpop(key);删,移除并返回列表key的尾元素,被删元素Ifalse 88$redis-lrem(key,value,0);册lj,根据参数count的值,移除列表中与参89数value相等的元素count=(0I-n表头向尾l+n表尾向头移除n个value)被移除90的数量10 91$redis-ltrim(key,sta
12、rt,end);册u列表修剪,保留(start,end)之间的值92trueifalse 93$redis-lset(key,index,new_v);改,从表头数,将列表key下标为第94index的元素的值为new_v,true I false 95$redis-lindex(key,index);查,返回列表key中,下标为index的元素96valueifalse 97$redis-lrange(key,0,-1);查,(start,stopl0,-1)返回列表key中指定98区间内的元素,区间以偏移量start和stop指定。arrayI false 99/*6.Set,没有重复的m
13、ember,创建更新同操作100$redis-sadd(key,valuel,value2,valuen);增,改,将一个或多个101member元素加入到集合key当中,已经存在千集合的member元素将被忽略。102insert_num 103$redis-srem(key,valuel,value2,valuen);删,移除集合key中的104一个或多个member元素,不存在的member元素会被忽略del_numI false$redis-smembers(key);查,返回集合key中的所有成员arrayI$redis-sismember(key,member);/判断member
14、元素是否是集合key的成员1I 0J$redis-spop(key);删,移除并返回媒合中的一个随机元素memberI false)$redis-srandmember(key);查,返匣栠合中的一个随机元素memberfalse$redis-sinter(keyl,key2,keyn);/查,返回所有给定栠合的交集array I false$redis-sunion(keyl,key2,keyn);查,返回所有给定集合的并集array I false$redis-sdiff(key1,key2,keyn);查,返回所有给定集合的差栠array I false/*7.Zset,没有重复的mem
15、ber,有排序顺序,创建史新同操作$redis-zAdd(key,$score1,$member1,$scoreN,$memberN);增,改,将一个或多个member元素及其score值加入到有序栠key当中。numI 0)$redis-zrem(key,memberl,membern);删,移除有序集key中的一个或多个成员,不存在的成员将被忽略。del_numI 0)$redis-zscore(key,member);查,通过值反拿权numI null$redis-zrange(key,$start,$stop);查,通过(score从小到大)【排序名次范围】拿member值,返回有序集
16、key中,【指定区间内】的成员arrayI null$redis-zrevrange(key,$start,$stop);查,通过(score从大到小)【排序名次范围】拿member值,返回有序集key中,【指定区间内】的成员arrayI null$redis-zrangebyscore(key,$min,$max,$config);查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从小到大排)成员arrayI null$redis-zrevrangebyscore(key,$max,$min,$config);查,通过scroe权范围拿member值,返回有序集ke
17、y中,指定区间内的(从大到小排)成员arrayI null$redis-zrank(key,member);/查,通过member值查(score从小到大)排名结果中的【member排序名次】orderI null$redis-zrevrank(key,member);查,通过member值查(score从大到小)排名结果中的【member排序名次】orderI null$redis-ZINTERSTORE();交集$redis-ZUNIONSTORE();/差栠/*8.Hash,表结构,创建更新同操作$redis-hset(key,field,value);增,改,将哈希表key中的域fie
18、ld的值设为value,不存在创建,存在就覆盖【1I 0$redis-hget(key,field);查,取值【valueI false$arr=array(one=l,2,3);$arr2=array(one,0,1);$redis-hmset(key,$arr);增,改,设置多值arr为(索引I关联)数组,arrkey=field,true$redis-hmget(key,$arr2);查,获取指定下标的field,$arr I false$redis-hgetall(key);查,返回哈希表key中的所有域和值。当key不存在时,返回一个空表$redis-hkeys(key);查,返回哈
19、希表key中的所有域。当key不存在时,返回一个空表$redis-hvals(key);查,返回哈希表key中的所有值。当key不存在时,返回一个空表$redis-hdel(key,$arr2);删,删除指定下标的field,不存在的域将被忽略,numI false 附:php连接redis数据库单例类lclass RedisConnect 2 3/*4*Redis的ip5*6 7*var string */8 const REDISHOSTNAME=127.0.0.1:J 9/*10*Redis的port11*12*var int 13*/14 const REDISPORT=6379;15
20、/*16*Redis的超时时间17*18*var int 19*/20 const REDISTIMEOUT=0;21/*22*Redis的password23*24*var unknown_type 25*/26 const REDISPASSWORD=ehualu;27/*28*Redis的DBname29*30*var int 31*/32 const REDISDBNAME=12;33/*34*类单例35*36*var object 37*/38 private static$instance;39/*40*Redis的连接句柄41*42*var object 43*/44 priva
21、te$redis;45/*46*私有化构造函数,防止类外实例化47*48*param unknown_type$dbnumber 49*/50 private functionconstruct()51 52/链接数据库53$this-redis=new Redis();54$this-redis-connect(sel于::REDISHOSTNAME,self:REDISPORT,SSself:REDISTIMEOUT);56$this-redis-auth(self:REDISPASSWORD);57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
22、 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92$this-redis-select(self:REDISDBNAME);/*私有化克隆函数,防止类外克隆对象*/private function _clone()/*类的唯一公开静态方法,获取类单例的唯一入口*return object*/public static function getRedisinstance()if(!(self:$instance instanceof self)self:$instance=new self();return self:$instance;/* 获取redis的连接实例*return Redis*/public function getRedisConn()return$this-redis;/*需要在单例切换的时候做清理工作*/public functiondestruct()self:$instance-redis-close();self:$instance=NULL;