redis单机几万. 根据压测结果,采用限流,多级缓存(JVM进程级别缓存(空间小))
1.缓存穿透、缓存击穿、缓存雪崩解决方案
2. Redis 如何使用批量操作提高效率?
3. Redis系列十:Pipeline详解
4.Redis:内存淘汰机制
-
缓存击穿: 缓存没有,请求直接打到db
设置缓存不同时过期 -
缓存穿透: 缓存和db都没有
db没有时,也设置缓存值为空
布隆过滤器较重 -
热点缓存并发重建: 冷门数据突发性变成热点数据时. 大v直播带货冷门商品上架
DCL(Double Check Lock) : 高并发中间使用分布式锁
trylock(尝试加锁限时),存在偶尔的并发重建 -
缓存与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,以保证数据持久化。