初始化redis 对象
// 这里使用php 自带redis类(非tp 的redis缓存类)
$this->redis = new \Redis();
$redisConfi = Config('redis');
$this->redis->connect($redisConfi['host'], $redisConfi['port']);
基础命令
| connect | 连接redis | ->connect($host,$port) |
| keys | 查询所有键 支持带*模糊查询 | ->keys($key) |
| exists | 键是否存在 | ->exists($key) |
| expire | 设置某个键的超时时间(秒) | ->expire($key,86400*7); |
Redis 类型
String 值
| get | 获取值 | ->get($key) |
| set | 设置键和值 | ->set($key,”数据”) |
哈希(Hash)
| 方法 | 功能 | 示例 |
| hMSet | 设置hash 对象 | ->hMSet($key,[ ‘reg_count’=>0, ‘count’=>1, ‘enable’=>1, ]) |
| hGetAll | 获得hash结构数据的所有字段 | ->hGetAll($key) |
| hIncrBy | 对hash 数据的某一个字段 自增1 | ->hIncrBy($cache_key,’reg_count’,1); |
列表(Set)
有序列表(ZSet)
zset 是 Redis 提供的最具特色的数据类型之一,首先它是一个 set,这保证了内部 value 值的唯一性,其次它给每个 value 添加了一个 score(分值)属性,通过对分值的排序实现了有序化。比如用 zset 结构来存储学生的成绩,value 值代表学生的 ID,score 则是的考试成绩。我们可以对成绩按分数进行排序从而得到学生的的名次。
| 方法 | 功能 | 说明 | 示例 |
| zadd | 添加 | key 为集合名,score1 表示 分数(用于排序) ,name1 表示元素;对于已经存在的元素,重新执行 zadd 操作,会更新对应 score1 的值,也就分数值(会根据新的分数值进行排序) | zadd key score1 name1 score2 name2 score3 name3 |
| zscore | 取 | 获取到 name1 的分数 | zscore key name1 |
| zcard | 获取成员数量 | zcard key | |
| zrange | 范围查寻(从小到大) | 注:withscores如果没有添加不会显示值; -1 表示最后一位 | zrange key 0 -1 zrange key 0 -1 withscores |
| zrevrange | 范围查寻(从大到小) | 同 zrange 一样,只是顺序反过来 | zrevrange key 0 -1 zrevrange key 0 -1 withscores |
| zrangebyscore | 根据分数显示元素 | 由低到高显示分数score1到score2之间的元素(带上分数显示)(显示a-b之间的元素) 这里有一个内置值 inf,表示无穷, -inf 表示负无穷, +inf 表示正无穷 | zrangebyscore sort score1 score2(withscores)(limit a b) zrangebyscore books -inf +inf |
| zrevrangbyscore | 同上逆序 | score从大到小排序分页 | ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] |
| zrem | 删 | zrem key name1 name2 | |
| zremrangebyrank | 按照范围删除 | 删除下标为0 到 4之前的元素 | zremrangebyrank key 0 4 |
| zremrangebyscore | 按照value删除 | 将删除 分数在 80(包括) 到 90(包括) 之间的元素 | zremrangebyscore 80 90 |
| zincrby | 指定成员增加 | 将元素b对应的分数加a,返回加完之后b对应的分数 | zincrby key a b |
| zcount | 返回分数之间的元素个数 | 返回分数score1到分数score2之间的元素个数 | zcount key score1 score2 |