redis-mark

缓存与数据库的数据一致性问题

1、cache Aside  (先更新db,在删除缓存)   

        无侵入方案,使用canel通过binlog更新缓存

2、read/wirte Through

3、write Behind caching 

缓存穿透、击穿、雪崩 

缓存穿透:数据库不存在,方案:缓存空对象,布隆过滤器

缓存击穿:热key 失效  方案:热点数据用不过期,互斥锁

雪崩:大面积的失效  方案:高可用,限流降级,失效时间随机数

热点key发现与解决:

发现方法:redis 的monitor  ,抓包,预估

处理方案:二级缓存,key分散

Bigkey发现与解决:

危害:内存不均匀,超时阻塞,网络阻塞

发现方法:redis 的参数可以统计 

处理方案:拆散数据,缩小

数据倾斜

Redis脑裂

客户端缓存,网络缓存,服务器缓存

正向代理:squid

边缘缓存:cdn,varnish(Varnish是一款高性能的开源HTTP加速器)

数据库缓存:bufferpool

应用级缓存:escache

平台级缓存:redis

常见缓存算法

LRU 最近最少使用   LFU最不经常使用

缓存架构:


版权声明:本文为charry0110原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。