php操作redis常见方法示例【key与value操作】


Posted in PHP onApril 14, 2020

本文实例讲述了php操作redis常见方法。分享给大家供大家参考,具体如下:

关于key的操作:

1、获取所有key,不包括值;

$redis ->keys("*");

2、获取一个或多个key的值,【不限制数据类型】;

$redis ->mget([$key1,$key2]);//参数为数组;

3、设置指定key的生命周期;

$redis ->expire($key,30);//设置生命周期为30秒;

4、获取指定key的剩余生命周期;

$redis->tTl($key);

关于value的操作:

1、string类型

$key = 'user';
$redis->delete($key); 
$redis ->set($key,'11');
$redis ->setNx($key,3);//当$key不存在时设置才生效;如果存在则值仍然不变;
$redis ->decr($key);//当$key的值是数字时可以通过该方法自减1
$redis ->incr($key);//当$key的值是数字时可以通过该方法自增1
$redis ->delete($key);//删除指定键值
$redis ->getMultiple ([$key,'lx']);//获取多个键对应的值 返回值:返回包含所有键的值的数组
$redis ->get($key);//获取指定key的值
$redis ->exists($key);//判断键是否存在

2、list链表

$key = 'user';
$redis ->delete($key); //每次进来删除$key数据 用于测试
$redis ->lPush($key,1);//从列表头部添加元素
$redis ->rPush($key,2);//从列表尾部添加元素
$redis ->rPush($key,4);
$redis ->lPush($key,4); 
$redis ->lPop($key); 从链表头部删除一个元素,并且返回这个元素的值,由于这个特性是的list非常适合做高并发秒杀
$redis ->lRemove($key,2,3);//删除$key中的2这个值,最多删除三个都为2的值;
$redis ->lSet($key,2,30);//将下标为2的元素设置为30;返回值:成功返回查找的值,失败false
$redis ->lGet($key,0);//获取指定下标的值 返回值:成功返回查找的值,失败false
$redis ->lTrim($key,0,1);//截取保留前两个值,返回值:成功返回查找的值,失败false;一般配合lGetRange使用
$redis ->lGetRange($key,0,-1);//获取所有list链表中$key的所有值【值可以重复】 返回值:成功返回查找的值,失败false
$redis ->lLen ($key);//统计元素个数 同$redis ->lsize ($key)一样 返回值:成功返回查找的值,失败false

个人总结:谁最后lpush说明第一个元素为谁;谁最后一个rpush代表最后一个元素为谁;

3、set集合 【和list不同的是set不允许有同样的值】

$key1 = 'user1';
$key2 = 'user2';
$redis->delete($key1);
$redis->delete($key2);
$redis ->sAdd($key1,'2');//为一个键添加一个值 返回值:成功返回true,失败false
$redis ->sAdd($key1,'1');
$redis ->sAdd($key2,'2');
$redis ->sAdd($key2,'3');
$redis ->sRemove($key,'1');//删除指定值 返回值:成功返回true,失败false
$redis ->sContains($key1,'3');//判断$key1中是否有指定值 返回值:成功返回true,失败false
$redis ->sSize($key1);//返回集合中存储值的数量 返回值:成功返回数组个数,失败0
$redis ->sPop($key1);//随机移除并返回key中的一个值 返回值:成功返回删除的值,失败false
$redis ->sUnion($key2,$key1);//返回所有指定键的并集 返回值:成功返回合并后的集,失败false
$redis ->sInterStore ('user3',$key2,$key1);//执行sInter命令并把结果储存到新建的集合中 返回值:成功返回,交集的个数,失败false
$redis ->sInter($key1,$key2);//返回两个指定集合的交集 返回值:成功返回数组交集,失败false
$redis ->sUnionStore('user3',$key2,$key1);//执行sunion命令并把结果储存到新建的变量中 返回值:成功返回,交集的个数,失败false 
$redis ->sMembers($key1);//获取集合内所有值
$redis ->sisMember ($key1,2);//如果成员元素2是集合$key1,的成员返回1,如果成员元素不是集合的成员,或key不存在返回0
$redis ->sDiffstore('user3',$key1,$key2);//执行sdiff命令并把结果储存到新建的变量中。返回值:成功返回数字,失败false
$redis ->sdiff($key1,$key2);//返回第一个集合中存在并在第二个集合中不存在的结果 返回值:成功返回数组,失败false 返回值:成功返回交集的个数,失败false 
$redis ->sort($key1);//当集合内都为数值时返回排序之后的结果 只要有一个值不是数值都不返回结果
$redis ->sCard($key1);//返回SET容器的成员数

4、hash对象 【可以理解为每一个key代表一条数据,同数据库中的行一样】

$key1 = 'user';
$key2 = 'user1';
$redis ->delete($key1);
$redis ->hSet($key1,'name','lx');//hash中每一个key对应一个或者多个键值对;就好比mysql中的字段和值;而$key类似一条数据
$redis ->hSet($key1,'age','保密');
$redis ->hSet($key1,'sex','男');
$redis ->hMGet($key2,['name','age']);//获得哈希表中多个 key 的值
$redis ->hMSet($key2,['name'=>'lx','age'=>27]);//给哈希表设置多个key的值
$redis ->hVals($key1);//获得哈希表中所有的值 顺序是随机的
$redis ->hKeys($key1);//获得哈希表中所有的key 顺序是随机的
$redis ->hDel($key1,'user1');//删除一个表中指定的key,如果hash表不存在或对应的key不存在,返回false
$redis ->hLen($key1);//哈表中key的数量说白了就是记录的条数和数据库中的行一样
$redis ->hGet($key1,'user2');
$redis ->hSetNx($key1,'user2','lx');//当哈希表中不存在某key时,给该key设置一个值
$redis ->hExists($key1,'user1');//检查哈希key是否存在 返回值:存在返回 true, 不存在返回 false
$redis ->hGetAll($key2);// 获得一个哈希表中所有的key和value
$redis ->hIncrByFloat($key1,'user3',3.5);//给哈希表中某key增加一个浮点数值,前提是key中已存在的值必须是数值类型
$redis ->hIncrBy($key1,'user3',3);//给哈希表中某key增加一个整数值,前提是key中已存在的值必须是数值类型

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
完善CodeIgniter在IDE中代码提示功能的方法
Jul 19 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
php面向对象中static静态属性与方法的内存位置分析
Feb 08 PHP
php链表用法实例分析
Jul 09 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
Laravel框架源码解析之入口文件原理分析
May 14 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 #PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 #PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
Apr 13 #PHP
PHP 对象接口简单实现方法示例
Apr 13 #PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 #PHP
yii2.0框架多模型操作示例【添加/修改/删除】
Apr 13 #PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 #PHP
You might like
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
YII框架常用技巧总结
2019/04/27 PHP
Dom 是什么的详细说明
2010/10/25 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(上)
2017/04/21 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python 爬虫的工具列表大全
2016/01/31 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
Java编程迭代地删除文件夹及其下的所有文件实例
2018/02/10 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
公司寄语大全
2014/04/10 职场文书
家长对学生的评语
2014/04/18 职场文书
小学教师读书活动总结
2014/07/08 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
2014年平安夜寄语
2014/12/08 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏