缓存问题

大量缓存同一时间失效会引起缓存的雪崩

Redis高可用(High Availability)两种实现方式

  • 主从复制数据。
  • 哨兵模式

网上给Redis加锁的机制都是利用Redis的setnx自身的方法去加锁,且防止死锁

怎么发现热key

方法一:凭借业务经验,进行预估哪些是热key
其实这个方法还是挺有可行性的。比如某商品在做秒杀,那这个商品的key就可以判断出是热key。缺点很明显,并非所有业务都能预估出哪些key是热key。

方法二:在客户端进行收集
这个方式就是在操作redis之前,加入一行代码进行数据统计。

方法三:在Proxy层做收集

方法四:用redis自带命令

(1)monitor命令,该命令可以实时抓取出redis服务器接收到的命令,然后写代码统计出热key是啥。当然,也有现成的分析工具可以给你使用,比如redis-faina。但是该命令在高并发的条件下,有内存增暴增的隐患,还会降低redis的性能。
(2)hotkeys参数,redis 4.0.3提供了redis-cli的热点key发现功能,执行redis-cli时加上–hotkeys选项即可。但是该参数在执行的时候,如果key比较多,执行起来比较慢。

####解决方法:

  • 利用二级缓存
  • 备份热key