# redis
List<SmsHomeAdvertise> list;
String json = cacheApi.get("home:advertise");
if(null != json){
list = JSON.parseArray(json,SmsHomeAdvertise.class);
}else{
QueryWrapper<SmsHomeAdvertise> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("home_type", KxxUtils.NUMBER_ONE);
queryWrapper.eq("is_del", KxxUtils.NUMBER_ZERO);
queryWrapper.eq("status", KxxUtils.NUMBER_ONE);
//排序字段倒序
queryWrapper.orderByAsc("sort");
list = this.list(queryWrapper);
cacheApi.set("home:advertise", JSON.toJSONString(list), 10080);
}
redis 视频
https://www.bilibili.com/video/BV1pA411x7eA

redis 分段锁
redisson 读锁 写锁
# redis 优化
# 内存优化
1. 控制 key 的长度
2. 避免存储 bigkey
3. 选择合适的数据类型
4. 把 Redis 当作缓存使用
5. 实例设置 maxmemory + 淘汰策略
6. 数据压缩后写入Redis
# 性能优化
1. 避免存储 bigkey
2. 开启 lazy-free 机制
3. 不使用复杂度过高的命令
4. 执行O(N)命令时,关注N的大小
5. 关注 DEL 时间复杂度
6. 批量命令代替单个命令
7. 避免集中过期 key
8. 使用长连接操作 Redis,合理配置连接池
9. 只使用 db0
10. 使用读写分离 + 分片集群
11. 不开启 AOF 或 AOF 配置为每秒刷盘
12. 使用物理机部署 Redis
13. 关闭操作系统内存大页机制
缓存雪崩,缓存穿透,缓存击穿
redis 删除策略
事务实现
集群方案 https://www.jianshu.com/p/e615507fa44a
主从复制原理