每次用PHP再操作redis时都要找手册或百度一下,为方便以后查找把php操作redis的方法和使用示例统一的整理在这篇文章里,以后就不用反反复复的百度了

首先php使用redis需要安装php的redis扩展:

安装成功后,可以在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);

后期用到会逐步的完善本文章

如有问题,欢迎大家留言沟通,点赞支持!!

php操作redis实例大全相关推荐

  1. python redis list_Python操作redis实例小结【String、Hash、List、Set等】

    本文实例总结了Python操作redis方法.分享给大家供大家参考,具体如下: 这里介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 ...

  2. python操作redis实例_Java,php,Python连接并操作redis实例

    1.Java连接并操作redis 在Eclipse里新建一个java project,导入jedis-*.jar包. 示例代码,其他对应的操作类型见:http://my.oschina.net/u/2 ...

  3. predis操作redis方法大全

    //连接redis $redis = new Redis(); $redis->connect("127.0.0.1", 6379); //普通set/get操作 $redi ...

  4. 利用predis操作redis方法大全(方便自己使用)

    predis是php连接redis的操作库,由于它完全使用php编写,大量使用命名空间以及闭包等功能,只支持php5.3以上版本,故实测性能一般,每秒25000次读写,相信改换c语言编写的php扩展后 ...

  5. java中使用Jedis操作Redis实例

    要想在Java中连接Redis,并进行操作,由两种方式,一种是spring data redis,它是由spring集成的,不支持集群,一种是官方推荐的jedis,支持集群,其他功能差不多一样, 这里 ...

  6. Python操作Mysql实例代码教程在线版(查询手册)_python

    实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...

  7. python使用mysql实例教程_Python操作Mysql实例代码教程在线版(查询手册)_python

    实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...

  8. redis实例python_使用python操作redis(管道)

    一.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRe ...

  9. python redis_Python操作Redis大全

    命令太多记不住可以参考Redis中文网,强烈建议收藏 一.字符串 strings Python操作Redis的redis模块对字符串(string)的主要操作函数包括:SET.GET.GETSET.S ...

  10. Redis(2) redis-cli 客户端操作Redis - 常用命令大全

    使用redis-cli 客户端操作redis redis是一个key-value的Nosql,我们能操作就只有String类型key以及各种类型value.但是一定要注意我们添加的一般都是字符串,只是 ...

最新文章

  1. R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)
  2. 【SRM 716 DIV 1 A】 ConstructLCS
  3. python教程:ConfigParser模块使用教程
  4. Ribbon-1 Ribbon的基本使用
  5. 《Java从入门到放弃》JavaSE入门篇:文件操作
  6. 为什么你的数据分析成果总是难以落地?
  7. td外边加div为啥不隐藏_过年炸油饼注意了,秘制配方比例教给你,柔软不吸油,放凉了不硬...
  8. 2DToolkit官方文档中文版打地鼠教程(一):初始设置
  9. MongoDB学习总结(五) —— 安全认证
  10. java 根据星期计算日期_Java 根据指定日期计算所在周的周一和周日
  11. 清理apache日志
  12. HDU2094 产生冠军【set】
  13. 跟KingDZ学HTML5之九 HTML5新的 Input 种类
  14. 自适应输出表格(ASP版)
  15. 三星note9刷android11,【极光ROM】-【三星NOTE9 N960X-845】-【V17.0 Android-Q-TG1】
  16. 计算机的acpi高级电源选项配置,ACPI电源管理模式详解
  17. 求解最大连续子序列和问题———分治法
  18. 趁1024,来总结2022年流走的10个月
  19. 国科大学习资料--模式识别--2018-2019期末试卷及解析(刘成林)
  20. 抽象类:小样儿(接口),我一眼看出你就不是人(抽象类)

热门文章

  1. iPhone苹果手机iOS14更新升级到iOS15需要多久?
  2. 登录图片拖动验证联系后台
  3. MATLAB2017a安装破解教程
  4. WebStorm汉化包下载(以及Android Studio,IntelliJIDEA等的汉化包下载)
  5. 【Themes for IntelliJ-based IDEs】Idea主题下载
  6. 傲腾内存linux安装,装机不求人:Intel傲腾内存安装教程
  7. 汉字 计算机 坟墓,「墓」字意思,墓怎么读,部首笔画及组词-汉语字典-小娃子
  8. 黑苹果无线网卡选择intel还是博通?及其驱动方式详解
  9. 简述ip地址的abc类如何划分_网络IP地址“主要”分为ABC三类
  10. 计算机图形学-第一八分象限的DDA算法