加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP-redis命令文档介绍

发布时间:2022-07-26 16:18:43 所属栏目:PHP教程 来源:互联网
导读: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。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读