为什么选择 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 缓存能力
  1. <dependency>
  2. <groupId>com.pig4cloud</groupId>
  3. <artifactId>pig-common-core</artifactId>
  4. </dependency>
  1. @Autowired
  2. private RedisTemplate redisTemplate;
  3. Object codeObj = redisTemplate.opsForValue().get(key);
  • RedisTemplate 支持如下数据类型结构操作:
    • HashOperations:对 hash 类型的数据操作
    • ValueOperations:对 redis 字符串类型数据操作
    • ListOperations:对链表类型的数据操作
    • SetOperations:对无序集合类型的数据操作
    • ZSetOperations:对有序集合类型的数据操作

③ Spring Cache 注解模式

@Cacheable 添加缓存

主要针对方法配置,能够根据方法的请求参数对其结果进行缓存
image.png

@CacheEvict 清空缓存

image.png

属性说明

缓存 redis 相关功能使用 - 图3

❤ 问题咨询

手势点击蓝字求关注简约风动态引导关注__2022-09-07+23_18_38.gif