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 ...
随机推荐
- Thread类和Runnable接口的比较
Thread和Runnable的联系 Thread类的定义: public class Thread extends Object implements Runnable 联系:从Thread类的定义 ...
- Vivado 的IP:Global 和 Out-Of-Context选项问题
在Vivado定制IP的时候,或者在IP Catalog中双击一个IP,不论该IP是我们自己添加到工程的自定义IP,还是Vivado自己带的IP,选择"Customize IP"后 ...
- java--浅谈线程
一.线程基础: 1.CPU核心数和线程数的关系 线程数:是同一时刻设备能并行执行的程序个数,线程数=cpu个数 * 核数,及程数=cpu个数(2) * 核数(2)=4: 使用了超线程技术后---> ...
- 【测试的艺术】+测试分析&测试计划+模板
一.项目概述 1.1.项目背景 #就是说一下为什么要做这个项目 1.2.项目目标 #这个项目最终要达到的目标是什么 二.项目整体分析 #项目分为哪些部分?各部分之间的关联是什么?各部分的目标是什么? ...
- Fiddler使用一(Fiddler简介)
参考文章:http://blog.csdn.net/ohmygirl/article/details/17846199 1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具fire ...
- WPF的布局--StackPanel
1. StackPanel是以堆叠的方式来显示控件(从左到右,或者从上到下) 默认是从上到下显示的,并且宽度为StackPanel的宽度,高度自动适应控件中内容的高度(未对控件进行设置时) 如图: 代 ...
- 关于发布webservice提示The test form is only available for requests from the local machine
通过编辑 Web 服务所在的 vroot 的 Web.config 文件,可以启用 HTTP GET 和 HTTP POST.以下配置同时启用了 HTTP GET 和 HTTP POST: <c ...
- 在Xcode中手动添加pch文件
在Xcode中手动添加pch文件: 一: 在工程中新建.pch文件,pch文件名通常用工程名字命名: 二: 在Targets->build Settings->Prefix Header ...
- pyquery库简介
html = '''<div><ul><li class="item-0">li0</li><li class="i ...
- webHttpBinding
[ServiceContract] public interface IHanger { /// <summary> /// 根据请求的用户的所属的组织,决定工单发布到哪个吊挂产线 /// ...