• Linux
  • apache
  • centos
  • Git版本管理
  • Linux基本命令
  • linux配置与优化
  • Nginx
  • PHP
  • Redis
  • Supervisor
  • Swoole
  • windows
  • THINKPHP
  • 开发者手册
  • Chat GPT / Open Ai
  • php操作redis实例大全

    全屏阅读
  • 基本信息
  • 作者:
  • 作者已发布:925篇文章
  • 发布时间:2023年01月13日 17:19:44
  • 所属分类:PHP+MySql, PHP原生源码, Redis
  • 阅读次数:378次阅读
  • 标签:
  • 首先php使用redis需要安装php的redis扩展

    image.png

    安装成功后,可以在phpinfo()查看安装的redis扩展的版本号 

    String操作

    代码示例

    $redis->setOption(Redis::OPT_PREFIX, 'hf_');//设置表前缀为hf_
     
    $redis->set('key', 1);//设置key=aa value=1 [true]
     
    $redis->ttl('key1'); //查询生存时间,持久化的返回-1,有生存时间的返回时间(单位秒)
     
    $redis->expire('key', 10);//设置失效时间[true | false]
     
    $redis->expireAt('x', time() + 3);//key存活到一个unix时间戳时间
     
    $redis->persist('key');//移除生存时间到期的key 如果key到期 true 如果不到期 false
     
    $redis->mset(array('key0' => 'value0', 'key1' => 'value1'));//设置一个或多个键值[true]
     
    $redis->setnx('key', 'value');//key=value,key存在返回false[|true]
     
    $redis->get('key');//获取key [value]
     
    $redis->mget($arr);//(string|arr),返回所查询键的值
     
    $redis->del($key_arr);//(string|arr)删除key,支持数组批量删除【返回删除个数】
     
    $redis->delete($key_str, $key2, $key3);//删除keys,[del_num]
     
    $redis->getset('old_key', 'new_value');//先获得key的值,然后重新赋值,[old_value | false]
     
    $redis->strlen('key');//获取当前key的长度
     
    $redis->append('key', 'string');//把string追加到key现有的value中[追加后的个数]
     
    $redis->incr('key');//自增1,如不存在key,赋值为1(只对整数有效,存储以10进制64位,redis中为str)[new_num | false]
     
    $redis->incrby('key', $num);//自增$num,不存在为赋值,值需为整数[new_num | false]
     
    $redis->decr('key');//自减1,[new_num | false]
     
    $redis->decrby('key', $num);//自减$num,[ new_num | false]
     
    $redis->setex('key', 10, 'value');//key=value,有效期为10秒[true]
     
    $redis->setex('testkey', 60, 'testval');//testkey=testval,有效期为60秒[true]
     
    $redis->keys('*'); //遍历所有的键名

    Hash操作

    代码示例

    //为hash表中的字段赋值。成功返回1,失败返回0。若hash表不存在会先创建表再赋值,若字段已存在会覆盖旧值。
    $ret = $redis->hSet('user', 'realname', 'jetwu');
    //获取hash表中指定字段的值。若hash表不存在则返回false。
    $ret = $redis->hGet('user', 'realname');
    //查看hash表的某个字段是否存在,存在返回true,否则返回false。
    $ret = $redis->hExists('user', 'realname');
    //删除hash表的一个字段,不支持删除多个字段。成功返回1,否则返回0。
    $ret = $redis->hDel('user', 'realname');
    //同时设置某个hash表的多个字段值。成功返回true。
    $ret = $redis->hMset('user', ['name' => 'jet', 'age' => 18]);
    //同时获取某个hash表的多个字段值。其中不存在的字段值为false。
    $ret = $redis->hMget('user', ['name', 'age']);
    //获取某个hash表所有的字段和值。
    $ret = $redis->hGetAll('user');
    //获取某个hash表所有字段名。hash表不存在时返回空数组,key不为hash表时返回false。
    $ret = $redis->hKeys('user');
    //获取某个hash表所有字段值。
    $ret = $redis->hVals('user');
    //为hash表中不存在的字段赋值。若hash表不存在则先创建,若字段已存在则不做任何操作。设置成功返回true,否则返回false。
    $ret = $redis->hSetNx('user', 'realname', 'jetwu');
    //获取某个hash表的字段数量。若hash表不存在返回0,若key不为hash表则返回false。
    $ret = $redis->hLen('user');
    //为hash表中的指定字段加上指定增量值,若增量值为负数则相当于减法操作。若hash表不存在则先创建,若字段不存在则先初始化值为0再进行操作,若字段值为字符串则返回false。设置成功返回字段新值。
    $ret = $redis->hIncrBy('user', 'age', 10);
    //为hash表中的指定字段加上指定浮点数增量值。
    $ret = $redis->hIncrBy('user', 'age', 1.5);

    Redis List(列表) 操作

    //在list列表头部插入一个值 ’1‘ ,如果'test'列表不存在则自动创建此列表。
    $redis->lPush('test','1');
     
    //在list列表尾部插入一个值’2‘ ,如果'test'列表不存在则自动创建此列表。
    $redis->rPush('test','2');
     
    //用于将一个值('1')插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效 返回列表的长度
    $redis->rPushx('test','1');
     
    //用于将一个值('1')插入到已存在的列表头部,如果列表不存在,操作无效 返回列表的长度
    $redis->lPushx('test','1');
     
    //移除并返回列表的第一个元素,当’test‘不存在或为空时返回false
    $redis->lPop('test');
     
    //移除并返回列表的尾部最后一个元素,当’test‘不存在或为空时返回false
    $redis->rPop('test');
     
    //取出并删除列表第一个元素,如果没有元素则阻塞等待5秒或到可取出元素为止。
    $redis->blPop('test',5);
     
    //取出并删除列表最后一个元素,如果没有元素则阻塞等待5秒或到可取出元素为止。
    $redis->brPop('test',5);
     
    //移除test列表的最后一个元素,并将该元素添加到test2列表并返回 失败返回false
    $redis->rpoplpush('test','test2');
     
    //移除test列表的最后一个元素,并将该元素添加到test2列表并返回 如果列表没有元素则会阻塞列表5秒,直到超时或有可取元素,超时返回false
    $redis->brpoplpush('test', 'test2', 5);
     
    //返回列表长度
    $redis->lLen('test');
     
    //获取索引为1的列表中的元素,失败返回false
    $redis->lIndex('test',1);
     
    //设置test列表索引为1的值为’1‘,失败返回false
    $redis->lSet('test',1,'1');
     
    //在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。
    // \Redis::BEFORE 插入元素之后  \Redis::AFTER 插入元素之前
    //当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。
    $redis->lInsert('test', \Redis::AFTER,'a','1');
     
    //移除列表中与参数 VALUE (’1‘) 相等的元素
    //count 可选范围:
    //count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
    //count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
    //count = 0 : 移除表中所有与 VALUE 相等的值
    $redis->lRem('test','1',-1);
     
    //对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
    //下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
    $redis->lTrim('test',1,5);
     
    //返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
    // 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
    $redis->lRange('test',0,10);

    顶一下
    (1)
    100%
    订阅 回复
    踩一下
    (0)
    0%
    » 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。
  • 【上一篇】
  • 【下一篇】
  • 目前有 0 条留言 其中:访客:0 条, 博主:0 条

    给我留言

    您必须 [ 登录 ] 才能发表留言!