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 ...
随机推荐
- js控制输入框只能输入数字不能输入其他字符
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 接口自动化之unittest初探
最近几天苦心钻研unittest,终于略有所得,所以想来跟大家分享一下.有关python和unittest的基础知识部分就不在一一细说,相信各位也不是小白了.如果需要我整理基础知识,欢迎留言,我会看情 ...
- 进阶篇:3)面向制造的设计DFM
本章目的:正确认识面向制造的设计-DFM. 1.DFM概念 DFM有两种描述是作者比较认可的. ①面向制造的设计(design for manufacturing简称DFM):指产品设计需要满足产品制 ...
- Educational Codeforces Round 58 (Rated for Div. 2)
A. Minimum Integer 水 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using name ...
- java实现猴子选大王问题(约瑟夫问题)
题目:m只猴子围成一圈报数,报n的猴子自动离开,然后下一位重新从1开始报数,一直循环,最后剩下的那个猴子就是猴大王,写出程序求出最后是大王的那只猴子最初的位置. package learn; impo ...
- MySQL查询操作select
查找记录 SELECT select_expr [,select_expr ...] [ FROM table_references(表的参照) [WHERE where_condition](条件) ...
- CentOS7 配置免密登陆
首先我通过VMware配置了4台机器 然后依次更改每台机器的hosts文件为: (/etc/hosts) 192.168.32.128 linux1192.168.32.130 linux2192 ...
- jQuery插件的开发(一)
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- Python生成pyc文件
Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code).pyc文件经过python解释器最终会生成机器码运行.所以pyc文件是可以跨平台部署的,类似Java的.c ...
- python2.7 输入&函数参数&路径表示&各种下标_含义
1.Python2.x与3.x的input区别 input与python3不同,在python2.7中分为input()与raw_input() 其中input()返回的是int/float类型数据, ...