214 字
1 分钟
面试鸭-如何解决 Redis 中的热点 key 问题?
如何解决 Redis 中的热点 key 问题?
热点Key就是访问频率非常高的Key,比如秒杀商品详情这种。因为Redis是单线程执行的,热点Key会导致单个节点的CPU被吃满。
解决的办法有:
- 读写分离:主库负责写,多个从库负责读请求,一个热点key可以分到多个。
- 热点Key拆分:把一个Key复制出来多份。比如key后面加上规律的数字,然后用户id取模的方式去决定选哪一个,多个Key分散在不同节点。
- 多级缓存:可以在Redis前再加一层本地缓存,比如Caffeine、Guava Cache,然后热点数据直接不走网络从JVM内存中读取。
- 限流:设置超过阈值直接返回友好提示,防止服务崩掉。
问题
面试鸭-如何解决 Redis 中的热点 key 问题?
http://www.shineacz.top/posts/面试鸭-如何解决-redis-中的热点-key-问题/