PHP-redis命令文档介绍
发布时间:2022-07-25 13:09 所属栏目:121 来源:互联网
导读:Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具
Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,它的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets集中的差别等等操作,这些操作都是具有原子性的,Redis还支持各种不同的排序能力 Redis 2.0更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF和VM) phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 以下是redis官方提供的命令使用技巧: setex 带生存时间的写入值 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。 如果 key 已经存在, SETEX 命令将覆写旧值。 这个命令类似于以下两个命令: SET key value EXPIRE key seconds # 设置生存时间 不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成, 该命令在 Redis 用作缓存时,非常实用。 #粒子 $redis->setex(‘key’, 3600, ‘value’); // sets key → value, with 1h TTL. setnx 判断是否重复的,写入值 #将 key 的值设为 value ,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作 $redis->setnx(‘key’, ‘value’); $redis->setnx(‘key’, ‘value’); delete 删除指定key的值 返回已经删除key的个数(长整数) $redis->delete(‘key1′, ‘key2′); $redis->delete(array(‘key3′, ‘key4′, ‘key5′)); Redis::__construct构造函数 $redis = new Redis(); connect, open 链接redis服务 参数 host: string,服务地址 port: int,端口号 timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间) 注: 在redis.conf中也有时间,默认为300 ping 查看连接状态 get 得到某个key的值(string值) 如果该key不存在,return 特殊值 nil;如果 key 不是字符串类型,那么返回一个错误 set 写入key 和 value(string值) 在 Redis 2.6.12 版本以前, set命令总是返回 OK 。 从 Redis 2.6.12 版本开始, set 在设置操作成功完成时,才返回 OK 。 如果设置了 NX 或者 XX ,但因为条件没达到而造成设置操作未执行,那么命令返回空批量回复(NULL Bulk Reply)。 ttl 得到一个key的生存时间 persist 移除生存时间到期的key 如果key到期 true 如果不到期 false mset (redis版本1.1以上才可以用) 同时给多个key赋值 $redis->mset(array(‘key0′ => ‘value0′, ‘key1′ => ‘value1′)); exists 判断key是否存在。存在 true 不在 false $redis->exists(‘test’); 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<0从尾到头删除|count|个值为value的元素 lInsert 在名称为为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读