首页 > 代码库 > Redis学习笔记(二) ---- PHP操作Redis各数据类型

Redis学习笔记(二) ---- PHP操作Redis各数据类型

  Redis

一、使用PHP操作Redis存储系统中的各类数据类型方法

  1.String(字符串)操作

技术分享
 1 <?php
 2 
 3 // 1. 实例化
 4 $redis = new Redis;
 5 
 6 // 2. 连接 redis
 7 $redis->connect(‘localhost‘,6379);
 8 
 9 // 3. 选择数据库
10 $redis->select(15);
11 
12 // 字符串类型
13 // 添加数据
14 $redis->set(‘name‘,‘张三‘);
15 // 设置添加数据的生命周期
16 $redis->set(‘age‘,‘李四‘,10);
17 // 添加多个数据
18 $arr = [‘name‘=>‘李四‘,‘age‘=>18];
19 $redis->mset($arr);
20 // 增加一个新值(不存在的)
21 $redis->setnx(‘height‘,‘180cm‘);
22 // 删除数据
23 $redis->delete(‘name‘);
24 // 修改数据(自增 递减)
25 $redis->incr(‘num‘);
26 $redis->incrby(‘num‘,12);
27 $redis->decr(‘num‘);
28 $redis->decrby(‘num‘,10);
29 // 获取值
30 // 获取单个值
31 $res = $redis->get(‘num‘);
32 var_dump($res);
33 // // 获取多个值
34 $res = $redis->mget([‘num‘,‘age‘,‘height‘]);
PHP操作Redis中String数据类型

  2.List(链表 / 列表)操作

技术分享
 1 <?php
 2 
 3 // 实例化 redis
 4 $redis = new Redis;
 5 
 6 // 连接 redis 服务器
 7 $redis->connect(‘localhost‘,6379);
 8 
 9 // 选择数据库
10 $redis->select(1);
11 // redis 中 list 列表数据的处理
12 // 添加数据
13 $redis->lpush(‘list1‘,‘苹果‘);
14 $redis->lpush(‘list1‘,‘香蕉‘);
15 // 从右侧添加数据
16 $redis->rpush(‘list1‘,‘apple‘);
17 $redis->rpush(‘list1‘,‘小米‘);
18 
19 // 删除数据
20 // 将数据弹出列表
21 $redis->lpop(‘list1‘);
22 $redis->rpop(‘list1‘);
23 // 将数据移出列表
24 $redis->lrem(‘list1‘,‘苹果‘,2);
25 
26 // 修改数据
27 $redis->lset(‘list1‘, 1,‘苹果‘);
28 $redis->lset(‘list1‘,-2,‘apple‘);
29 $redis->rpoplpush(‘list1‘,‘list2‘);
30 
31 // 查询数据
32 $res = $redis->lindex(‘list1‘,0);
33 $res = $redis->lindex(‘list2‘,-1);
34 $res = $redis->lrange(‘list2‘,0,-1);
35 $res = $redis->lsize(‘list1‘);
36 var_dump($res);
PHP操作Redis中list数据类型

  3.Set(集合)操作

技术分享
 1 <?php
 2 
 3 // 实例化
 4 $redis = new Redis();
 5 // 连接 redis
 6 $redis->connect(‘localhost‘,6379);
 7 // 选择数据库
 8 $redis->select(1);
 9 // 对集合操作
10 // 增加数据(集合中的数据不能重复)
11 $redis->sadd(‘s1‘,‘a‘,‘b‘,‘c‘,‘d‘);
12 
13 // 删除数据
14 $redis->srem(‘s1‘,‘a‘);
15 
16 // 修改集合成员
17 $redis->smove(‘s1‘,‘s2‘,‘c‘);
18 
19 // 查询数据
20 $res = $redis->smembers(‘s1‘);
21 $res = $redis->ssize(‘s1‘);
22 $res = $redis->srandmember(‘s1‘);
23 
24 // 两集合的交集
25 $res = $redis->sinter(‘s1‘,‘s2‘);
26 // 两集合的差集
27 $res = $redis->sdiff(‘s1‘,‘s2‘);
28 // 两集合的并集
29 $res = $redis->sunion(‘s1‘,‘s2‘);
30 // 检测是否是集合成员
31 $res = $redis->sismember(‘s1‘,‘a‘);
32 var_dump($res);
PHP操作Redis中Set数据类型

  4.Zset(有序集合)操作

技术分享
 1 <?php
 2 
 3 // 实例化
 4 $redis = new Redis;
 5 // 连接 redis 
 6 $redis->connect(‘localhost‘,6379);
 7 // 对有序集合的操作
 8 // 添加数据
 9 $redis->zadd(‘z1‘,1,‘张三‘);
10 $redis->zadd(‘z1‘,2,‘李四‘);
11 $redis->zadd(‘z1‘,3,‘王五‘);
12 $redis->zadd(‘z1‘,4,‘赵六‘);
13 $redis->zadd(‘z1‘,5,‘田七‘);
14 $redis->zadd(‘z1‘,20,‘王八‘);
15 $redis->zadd(‘z1‘,50,‘敬酒‘);
16 $redis->zadd(‘z1‘,100,‘牛十‘);
17 
18 // 删除数据
19 $redis->zrem(‘z1‘,‘敬酒‘);
20 
21 // 修改数据的分数
22 $redis->zincrby(‘z1‘,3,‘王五‘);
23 
24 // 获取数据
25 $res = $redis->zrange(‘z1‘,0,-1);
26 $res = $redis->zrevrange(‘z1‘,0,-1);
27 $res = $redis->zrangebyscore(‘z1‘,10,50,[‘withscore‘=>true,‘limit‘=>[0,3]]);//根据分数获取元素并可限制取出元素数量,正序
28 $res = $redis->zrevrangebyscore(‘z1‘,50,10,[‘withscore‘=>true,‘limit‘=>[0,3]]);//根据分数获取元素并可限制取出元素数量,倒数
29 // 获取元素个数
30 $res = $redis->zcount(‘z1‘,10,50);
31 $res = $redis->zsize(‘z1‘);
32 $res = $redis->zrank(‘z1‘,‘王八‘);
33 $res = $redis->zscore(‘z1‘,‘王八‘);
34 var_dump($res);
PHP操作Redis中Zset数据类型

  5.Hash(哈希型)操作

技术分享
 1 <?php
 2 
 3 // 实例化
 4 $redis = new Redis;
 5 // 连接 redis
 6 $redis->connect(‘localhost‘,6379);
 7 // 对哈希数据操作
 8 // 添加数据
 9 $redis->hset(‘h1‘,‘age‘,80);
10 $redis->hmset(‘h1‘,[‘sex‘=>‘man‘,‘height‘=>‘180cm‘]);
11 
12 // 添加递增
13 $redis->hincrby(‘h1‘,‘num‘,1);
14 
15 // 删除数据
16 $redis->hdel(‘h1‘,‘name‘);
17 
18 // 查询单个 hash 值
19 $res = $redis->hget(‘h1‘,‘age‘);
20 // 批量查询 hash 值
21 $res = $redis->hmget(‘h1‘,[‘age‘,‘sex‘,‘height‘]);
22 // 获取所有 hash 值
23 $res = $redis->hgetAll(‘h1‘);
24 // 获取 hash 表元素总个数
25 $res = $redis->hlen(‘h1‘);
26 // 获取 hash 表元素所有键名
27 $res = $redis->hkeys(‘h1‘);
28 // 获取 hash 表元素所有值
29 $res = $redis->hvals(‘h1‘);
30 // 判断 hash 表中是否存在某键名
31 $res = $redis->hexists(‘h1‘,‘name‘);
32 var_dump($res);
PHP操作Redis中Hash数据类型

  6.操作Redis数据的通用方法

技术分享
 1 <?php
 2 
 3 // 实例化
 4 $redis = new Redis;
 5 // 连接 redis
 6 $redis->connect(‘localhost‘,6379);
 7 // 清空当前数据库
 8 $redis->flushdb();
 9 // 清空 redis 所有数据库数据
10 $redis->flushAll();
11 
12 // 设置 / 修改数据
13 $redis->set(‘name‘,‘admin‘);
14 // 设置该键值的生命周期
15 $redis->expire(‘name‘,40);
16 // 获取某键名生命周期
17 $res = $redis->ttl(‘name‘);
18 
19 // 检测是否存在某数据
20 $res = $redis->exists(‘name‘);
21 // 获取当前数据库所有键
22 $res = $redis->keys(‘*‘);
23 var_dump($res);
PHP操作Redis数据的通用方法

 

Redis学习笔记(二) ---- PHP操作Redis各数据类型