Redis缓存问题

本文探讨Redis缓存的优化策略,包括缓存穿透、缓存击穿、缓存雪崩的解决方案,以及如何利用批量操作提高效率。同时,讲解了Redis的Pipeline使用和内存淘汰机制。在数据安全方面,介绍了Redis数据文件损坏后的恢复步骤,包括使用Redis自带工具进行检查和修复,以及预防数据损坏的措施。此外,还提到了分布式锁在并发控制中的应用和潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis单机几万. 根据压测结果,采用限流,多级缓存(JVM进程级别缓存(空间小))
在这里插入图片描述

1.缓存穿透、缓存击穿、缓存雪崩解决方案

2. Redis 如何使用批量操作提高效率?

3. Redis系列十:Pipeline详解

4.Redis:内存淘汰机制

Redis过期删除策略和内存淘汰策略
在这里插入图片描述

  1. 缓存击穿: 缓存没有,请求直接打到db
    设置缓存不同时过期

  2. 缓存穿透: 缓存和db都没有
    db没有时,也设置缓存值为空
    布隆过滤器较重

  3. 热点缓存并发重建: 冷门数据突发性变成热点数据时. 大v直播带货冷门商品上架
    DCL(Double Check Lock) : 高并发中间使用分布式锁
    trylock(尝试加锁限时),存在偶尔的并发重建

  4. 缓存与db双写不一致:分布式读写锁

5.数据损坏

如果 Redis 数据文件损坏,可以尝试使用以下步骤进行恢复:

备份损坏的 Redis 数据文件。

停止 Redis 服务。

使用 Redis Check-AOF 工具检查 AOF 文件是否可用(如果 Redis 配置了 AOF)。

使用 Redis Check-Dump 工具检查损坏的 Redis 数据文件是否可用。
如果检查结果为可用,可以启动 Redis 服务并尝试进行修复。需要注意的是,修复 Redis 文件需要使用 Redis 自带的 Redis-check-aof 和 Redis-check-dump 工具,而不是使用其他工具进行修复,否则可能会导致进一步的数据损坏。

如果检查结果为不可用,可以尝试使用 Redis 自带的恢复命令进行修复,命令如下:
redis-cli --raw DEBUG RELOAD
如果 Redis 数据文件无法修复,可以尝试使用 Redis 的快照备份进行恢复。需要注意的是,不建议仅依赖快照备份进行数据恢复,因为快照备份只包含最后一次持久化的数据,且数据可能不是最新的。
如果所有的恢复尝试都失败了,可以考虑重建 Redis 数据库,但需要注意会造成数据丢失。
需要注意的是,为了避免 Redis 数据文件损坏,可以采取以下措施:定期备份 Redis 数据文件。
避免在 Redis 数据写入过程中强制终止 Redis 服务。
配置 Redis 的持久化选项,如 AOF 或 RDB,以保证数据持久化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值