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数据的通用方法

最新文章

  1. How can I protect derived classes from breaking when I change the internal parts of the base class?
  2. go 版本 gRPC 环境搭建(3.0正式版)
  3. ok6410 android driver(7)
  4. 关于TCP/UDP缓存
  5. WordPress Xhanch - My Twitter插件跨站请求伪造漏洞(CVE-2013-3253)
  6. MVC之MVCSQO方法查询、排序、分页、投影
  7. 详细解释VB连接access几种方法数据库
  8. java实现的简单词法分析器
  9. 【转】Linux正则表达式使用指南
  10. 关于下载SAE日志签名认证的方法——PHP版
  11. javah的使用
  12. wcf双工通讯
  13. Mac PyCharm激活码(转载CSDN的猪哥66文章)
  14. # 20175333曹雅坤《Java程序设计》第七周学习总结
  15. 可持久化 trie 的简单入门
  16. 【Java每日一题】20170223
  17. python中// 和/有什么区别
  18. webstorm中使用sass
  19. MyCP(课下作业,必做)
  20. C#-----创建DataTable对象

热门文章

  1. 最新 php oracle 数据库连接 数据库分页
  2. php post get 繁体、日文、韩文时 自动添加 反斜杠 问题
  3. Java非静态代码块和静态代码块
  4. annotation-config和component-scan
  5. Linux and Shell 实用命令
  6. [Java基础]-- Java GC 垃圾回收器的分类和优缺点
  7. Java_方法的调用①及案例
  8. 浏览器在初始化JS 环境时都发生了些什么
  9. 对Map的一些总结
  10. java多线程开发,Executors、FutureTask、Callable