为什么选择 Redis 缓存
- pig 强耦合 redis , 整个应用构建在 redis 之上。
- Redis 是目前市场上最好的开源内存 NoSQL 数据库之一,是目前主流公司基础中间件和必备技术选型。
① RedisUtils 工具类
方法名称 | 方法作用 | 参数描述 |
---|---|---|
expire | 指定缓存失效时间 | key:键, time:时间(秒) |
getExpire | 根据 key 获取过期时间 | key:键 不能为 null |
scan | 查找匹配 key | pattern:key |
findKeysForPage | 分页查询 key | patternKey:key, page:页码, size:每页数目 |
hasKey | 判断 key 是否存在 | key:键 |
del | 删除缓存 | keys:可传一个值或多个 |
getLock | 获取锁 | lockKey:锁 key, value:value, expireTime:过期时间(单位秒) |
releaseLock | 释放锁 | lockKey:锁 key, value:value |
get | 普通缓存获取 | key:键 |
multiGet | 批量获取 | keys:键的集合 |
set | 普通缓存放入 | key:键, value:值 |
set | 普通缓存放入并设置时间 | key:键, value:值, time:时间(秒) |
hget | HashGet | key:键,不能为 null hashKey:项,不能为 null |
hmget | 获取 hashKey 对应的所有键值 | key:键 |
hmset | HashSet | key:键 map:对应多个键值 |
hset | 向一张 hash 表中放入数据,如果不存在将创建 | key:键 item:项 value:值 |
hdel | 删除 hash 表中的值 | key:键, 不能为 null item:项,可以使多个,不能为 null |
hHasKey | 判断 hash 表中是否有该项的值 | key:键,不能为 null item:项,不能为 null |
hincr | hash 递增 | key:键 item:项 by:要增加几(大于 0) |
hdecr | hash 递减 | key:键 item:项 by:要减少记(小于 0) |
sGet | 根据 key 获取 Set 中的所有值 | key:键 |
sHasKey | 根据 value 从一个 set 中查询,是否存在 | key:键 value:值 |
sSet | 将数据放入 set 缓存 | key: 键, values: 值 可以是多个 |
sSetAndTime | 将 set 数据放入缓存 | key: 键, time: 时间(秒), values: 值 可以是多个 |
sGetSetSize | 获取 set 缓存的长度 | key: 键 |
setRemove | 移除值为 value 的 | key: 键, values: 值 可以是多个 |
sDifference | 获集合 key1 和集合 key2 的差集元素 | key: 键, otherKey: 集合 key2 的键 |
lGet | 获取 list 缓存的内容 | key: 键, start: 开始索引, end: 结束索引 (0 到 -1 代表所有值) |
lGetListSize | 获取 list 缓存的长度 | key: 键 |
lGetIndex | 通过索引获取 list 中的值 | key: 键, index: 索引 (index>=0 时, 0 表头, 1 第二个元素,依次类推; index<0 时, -1 表尾, -2 倒数第二个元素,依次类推) |
lSet | 将 list 放入缓存 | key: 键, value: 值 |
lUpdateIndex | 根据索引修改 list 中的某条数据 | key:键 index:索引 value:值 |
lRemove | 移除 N 个值为 value | key:键 count:移除多少个 value:值 |
zSetAndTime | 将 zSet 数据放入缓存 | key:键 time:时间 tuples:值 |
zRangeByScore | Sorted set:有序集合获取 | key:键 min:最小分数 max:最大分数 |
zRange | Sorted set:有序集合获取 正序 | key:键 start:开始位置 end:结束位置 |
zReverseRange | Sorted set:有序集合获取 倒叙 | key:键 start:开始位置 end:结束位置 |
zGetSetSize | 获取 zSet 缓存的长度 | key:键 |
② RedisTemplate 直接操作
- 引入 core 模块,自动拥有了 Redis 缓存能力
<dependency>
<groupId>com.pig4cloud</groupId>
<artifactId>pig-common-core</artifactId>
</dependency>
- 使用 RedisTemplate 操作缓存即可, 具体使用参考 : https://blog.csdn.net/lydms/article/details/105224210
@Autowired
private RedisTemplate redisTemplate;
Object codeObj = redisTemplate.opsForValue().get(key);
- RedisTemplate 支持如下数据类型结构操作:
- HashOperations:对 hash 类型的数据操作
- ValueOperations:对 redis 字符串类型数据操作
- ListOperations:对链表类型的数据操作
- SetOperations:对无序集合类型的数据操作
- ZSetOperations:对有序集合类型的数据操作