Day52 Redis缓存设计与性能优化

2022-06-11  本文已影响0人  小周爱吃瓜

缓存设计原则当然是离用户越近越好。

Screen Shot 2022-06-11 at 12.59.26 PM.png

nginx分发层,nginx openrestry层需要做ip-hash的设置.
lua动态渲染模板+html+本地缓存.

web层: redis-cache或者Ehcache缓存数据。

MQ:

会员服务,商品,库存,交易,仓储状态微服务.

  1. 缓存空对象 2. 布隆过滤器 3. 缓存失效(击穿)

热点缓存Key重建优化策略

互斥锁

缓存不一致问题:

  1. 并发概率很小的情况(个人维度的订单数据,用户数据),这种加上缓存失效时间就可以了。
  2. 并发较高,比如商品名称,菜单这种,加上缓存过期时间可以解决大部分业务场景对于缓存的要求
  3. 如果不能容忍缓存一致性问题,延迟双删或者读写锁保证并发读写或者写写的按照顺序。 读读相当于是无锁的
  4. canal

缓存雪崩问题

sentinel 做熔断限制

定时,惰性,定期
对cpu不友好
对内存不友好,对cpu友好
隔断时间去检查一次

  1. noeviction
  2. 淘汰数据:
    2.1 设置了过期数据:采取的策略
    volatile-lru
    volatile-random
    volatile-ttl

2.2 allkeys-lru (针对所有的数据采用的策略)
allkeys-random
allkeys-lfu

上一篇 下一篇

猜你喜欢

热点阅读