Redis学习笔记(二) ---- PHP操作Redis各数据类型
Redis
一、使用PHP操作Redis存储系统中的各类数据类型方法
1.String(字符串)操作
<?php // 1. 实例化
$redis = new Redis; // 2. 连接 redis
$redis->connect('localhost',6379); // 3. 选择数据库
$redis->select(15); // 字符串类型
// 添加数据
$redis->set('name','张三');
// 设置添加数据的生命周期
$redis->set('age','李四',10);
// 添加多个数据
$arr = ['name'=>'李四','age'=>18];
$redis->mset($arr);
// 增加一个新值(不存在的)
$redis->setnx('height','180cm');
// 删除数据
$redis->delete('name');
// 修改数据(自增 递减)
$redis->incr('num');
$redis->incrby('num',12);
$redis->decr('num');
$redis->decrby('num',10);
// 获取值
// 获取单个值
$res = $redis->get('num');
var_dump($res);
// // 获取多个值
$res = $redis->mget(['num','age','height']);
PHP操作Redis中String数据类型
2.List(链表 / 列表)操作
<?php // 实例化 redis
$redis = new Redis; // 连接 redis 服务器
$redis->connect('localhost',6379); // 选择数据库
$redis->select(1);
// redis 中 list 列表数据的处理
// 添加数据
$redis->lpush('list1','苹果');
$redis->lpush('list1','香蕉');
// 从右侧添加数据
$redis->rpush('list1','apple');
$redis->rpush('list1','小米'); // 删除数据
// 将数据弹出列表
$redis->lpop('list1');
$redis->rpop('list1');
// 将数据移出列表
$redis->lrem('list1','苹果',2); // 修改数据
$redis->lset('list1', 1,'苹果');
$redis->lset('list1',-2,'apple');
$redis->rpoplpush('list1','list2'); // 查询数据
$res = $redis->lindex('list1',0);
$res = $redis->lindex('list2',-1);
$res = $redis->lrange('list2',0,-1);
$res = $redis->lsize('list1');
var_dump($res);
PHP操作Redis中list数据类型
3.Set(集合)操作
<?php // 实例化
$redis = new Redis();
// 连接 redis
$redis->connect('localhost',6379);
// 选择数据库
$redis->select(1);
// 对集合操作
// 增加数据(集合中的数据不能重复)
$redis->sadd('s1','a','b','c','d'); // 删除数据
$redis->srem('s1','a'); // 修改集合成员
$redis->smove('s1','s2','c'); // 查询数据
$res = $redis->smembers('s1');
$res = $redis->ssize('s1');
$res = $redis->srandmember('s1'); // 两集合的交集
$res = $redis->sinter('s1','s2');
// 两集合的差集
$res = $redis->sdiff('s1','s2');
// 两集合的并集
$res = $redis->sunion('s1','s2');
// 检测是否是集合成员
$res = $redis->sismember('s1','a');
var_dump($res);
PHP操作Redis中Set数据类型
4.Zset(有序集合)操作
<?php // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 对有序集合的操作
// 添加数据
$redis->zadd('z1',1,'张三');
$redis->zadd('z1',2,'李四');
$redis->zadd('z1',3,'王五');
$redis->zadd('z1',4,'赵六');
$redis->zadd('z1',5,'田七');
$redis->zadd('z1',20,'王八');
$redis->zadd('z1',50,'敬酒');
$redis->zadd('z1',100,'牛十'); // 删除数据
$redis->zrem('z1','敬酒'); // 修改数据的分数
$redis->zincrby('z1',3,'王五'); // 获取数据
$res = $redis->zrange('z1',0,-1);
$res = $redis->zrevrange('z1',0,-1);
$res = $redis->zrangebyscore('z1',10,50,['withscore'=>true,'limit'=>[0,3]]);//根据分数获取元素并可限制取出元素数量,正序
$res = $redis->zrevrangebyscore('z1',50,10,['withscore'=>true,'limit'=>[0,3]]);//根据分数获取元素并可限制取出元素数量,倒数
// 获取元素个数
$res = $redis->zcount('z1',10,50);
$res = $redis->zsize('z1');
$res = $redis->zrank('z1','王八');
$res = $redis->zscore('z1','王八');
var_dump($res);
PHP操作Redis中Zset数据类型
5.Hash(哈希型)操作
<?php // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 对哈希数据操作
// 添加数据
$redis->hset('h1','age',80);
$redis->hmset('h1',['sex'=>'man','height'=>'180cm']); // 添加递增
$redis->hincrby('h1','num',1); // 删除数据
$redis->hdel('h1','name'); // 查询单个 hash 值
$res = $redis->hget('h1','age');
// 批量查询 hash 值
$res = $redis->hmget('h1',['age','sex','height']);
// 获取所有 hash 值
$res = $redis->hgetAll('h1');
// 获取 hash 表元素总个数
$res = $redis->hlen('h1');
// 获取 hash 表元素所有键名
$res = $redis->hkeys('h1');
// 获取 hash 表元素所有值
$res = $redis->hvals('h1');
// 判断 hash 表中是否存在某键名
$res = $redis->hexists('h1','name');
var_dump($res);
PHP操作Redis中Hash数据类型
6.操作Redis数据的通用方法
<?php // 实例化
$redis = new Redis;
// 连接 redis
$redis->connect('localhost',6379);
// 清空当前数据库
$redis->flushdb();
// 清空 redis 所有数据库数据
$redis->flushAll(); // 设置 / 修改数据
$redis->set('name','admin');
// 设置该键值的生命周期
$redis->expire('name',40);
// 获取某键名生命周期
$res = $redis->ttl('name'); // 检测是否存在某数据
$res = $redis->exists('name');
// 获取当前数据库所有键
$res = $redis->keys('*');
var_dump($res);
PHP操作Redis数据的通用方法
Redis学习笔记(二) ---- PHP操作Redis各数据类型的更多相关文章
- Redis学习笔记二 (BitMap算法分析与BitCount语法)
Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...
- Redis学习笔记(2)——Redis的下载安装部署
一.下载Redis Redis的官网下载页上有各种各样的版本,如图 但是官网下载的Redis项目不正式支持Windows.如果需要再windows系统上部署,要去GitHub上下载.我下载的是Redi ...
- Redis学习笔记(1)——Redis简介
一.Redis是什么? Remote Dictionary Server(Redis) 是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- Redis学习笔记(3)——Redis的命令大全
Redis是一种nosql数据库,常被称作数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted se ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Redis 学习笔记系列文章之 Redis 的安装与配置 (一)
1. 介绍 Redis is an open source (BSD licensed), in-memory data structure store, used as database, cach ...
- redis 学习笔记二
redis启动: 直接 redis-server.exe 启动服务,是按照redis默认配置启动的,如果想按照自己的配置文件启动,要加上 redis-server.exe redis.windows ...
- Redis学习笔记二
学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序 ...
- 2019/1/10 redis学习笔记(二)
本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们jav ...
- Swoft2.x 小白学习笔记 (二) --- mysql、redis
介绍swoft中 1.mysql. 2.Redis 一.mysql使用: 1.配置,在 app\bean.php文件中 'db' => [ 'class' => Database::cla ...
随机推荐
- 拓扑排序+DP CF721C Journey
CF721C Journey 给出一个\(n\)个点\(m\)条边的有向无环图. 问从\(1\)到\(n\),在距离不超过\(k\)的情况下最多经过多少点,并输出一个方案. \(topo\)+\(DP ...
- virsh 连接虚拟机 (vnc 或 控制台)
第一种方式 1.如果虚拟机登录方式为VNC,在ubuntu机器上安装vncviewer 在虚拟机的配置xml中 <graphics type="vnc" autoport=& ...
- linux中校验文件完整性(md5,sha1)
经常在Linux下下载软件的人,一定会有一个良好的习惯:校验文件的hash,以确定文件的完整性甚至是安全性.我配置环境的时候也恰好用到了,笔者的是一个lubuntu的机子.这里我大致做个记录.(不了解 ...
- git 换行符替换
https://help.github.com/en/articles/dealing-with-line-endings rm .git/index git reset https://github ...
- Android Notification 的四种使用方式
实现通知步骤 一般实现通知需要如下步骤: 1.获取 NotificationManager 实例管理通知: 2.实例 Notification 对象: 3.管理事件 Intent: 4.发送通知. 注 ...
- ionic3 cordova 调取软键盘
应用场景,因为兼容ios,安卓问题,不能直接调用激活软键盘方法.只有在点击按钮时让input框自动获取焦点,激活软键盘.然后把input框定位在键盘上方,软键盘激活可以监听到键盘高度. 先下载keyb ...
- Mac下配置maven和集成到ecclipse(Mac 10.12)
1.到官网下载maven,http://maven.apache.org/download.cgi 下载好的tar.gz包解压出来,并重命名为maven3,拷贝到/usr/local目录下 2.配置环 ...
- Access如何判断字符串从左边第一个数字为5
步骤如下: 1.打开VBA(ALT+F11)2.右键模块=>插入=>模块3.粘贴以下代码: Public Function CutStr(chkStr As String) As Stri ...
- Python数据类型(数字)
文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 变量类型 变量存储在内存中的值.这 ...
- 二叉树数组C++实现
基本概念梳理 孩子:子结点 双亲:父节点 度:有多少个子结点 有序树:固定的排列的树 无序树:排列与顺序无关的树 二叉树:所有结点小于等于2的树 源代码:https://github.com/cjy5 ...