当前位置:网站首页>Redis cache update strategy, cache penetration, avalanche, breakdown problems

Redis cache update strategy, cache penetration, avalanche, breakdown problems

2022-07-06 12:12:00 A pole

Preface

This article is learned by me from dark horse programmer B Stop video tutorial (https://www.bilibili.com/video/BV1cr4y1671t) Notes made in the process of , Mainly records Redis Some ideas about caching , No code involved .

Redis cache

effect

  • Reduce back-end load
  • Improve reading and writing efficiency , Reduce response time

cost

  • Data consistency costs
  • Code maintenance costs
  • O & M costs

Cache update strategy

  1. Memory obsolescence

    • Automatically eliminate when the content is insufficient

    • Default on

    • You don't have to maintain it yourself

    • Poor consistency

    • Low maintenance cost

  2. Time out culling

    • add to TTL Automatically delete when due

    • General consistency

    • Low maintenance cost

  3. Active update

    • Write business logic , When modifying the database , Update cache

    • Good consistency

    • Maintenance costs are high

Select according to business scenario :

Low consistency requirements : Use Redis Built in memory elimination mechanism .

High consistency requirements : Active update , And enable timeout culling ,

  1. Read operations

    • Cache hits return directly

    • If not, query the database , And write to the cache

  2. Write operations

    • Write the database first , Then delete the cache

    • To ensure the atomicity of database and cache operations ( Monomer applications can use @Transactional Open transaction )
      image-20220619145324318

      image-20220619145704686

Cache penetration

Cache penetration means that the data requested by the client does not exist in the cache or in the database , This cache will never take effect , These requests will all go to the database .

There are two common solutions :

  1. Caching empty objects
    • advantage : Implement a simple , Convenient maintenance
    • shortcoming : Extra memory consumption 、 May cause short-term inconsistencies
  2. Bloon filtration ( be based on bitmap Realization )
    • advantage : Less memory , There is no excess key
    • shortcoming : The implementation is complex 、 There is a possibility of misjudgment

( On the left is the schematic diagram of caching empty objects , On the right is the schematic diagram of bulon filtration )

 On the left is the cache empty object , On the right is bulon filter

Cache avalanche

Cache avalanche refers to a large number of caches at the same time key Simultaneous failure or Redis The service outage , Cause a large number of requests to reach the database , It brings a lot of pressure .

( On the left is a large number of cache invalidation diagram , The right side is redis Downtime diagram )

 On the left is a large number of cache failures , The right side is redis Downtime

Solution :

  • To different Key Of TTL add to Random value
  • utilize Redis colony Improve service availability
  • Add Degraded current limiting Strategy
  • Add to business Multi level cache ( Browser cache 、Nginx cache 、Redis cache 、JVM Local cache 、 Databases, etc )

Cache breakdown

Cache breakdown is also called hot spot Key problem , It is a highly concurrent access and complex cache reconstruction business key All of a sudden it failed , Countless requests for access will have a huge impact on the database in an instant .

There are two common solutions :

  • Logical expiration

    Not set up TTL, Instead, add a expire Field , When the field time reaches , Update data .

    • advantage
      • Threads do not need to wait , Good performance
    • shortcoming
      • There is no guarantee of consistency
      • There is additional memory consumption
      • The implementation is complex
  • The mutex

    • advantage
      • No additional memory consumption
      • Guarantee consistency
      • Implement a simple
    • shortcoming
      • Thread needs to wait , Performance is affected
      • There may be a deadlock risk
        ( On the left is the schematic diagram of mutual exclusion , Schematic diagram of logical expiration of the right side wall )
         Please add a picture description

Solve the cache breakdown problem based on mutual exclusion

image-20220619175741505

Solve the cache breakdown problem based on logical expiration

image-20220619175909734

Postscript

u1s1, This tutorial is really good , And it's 2022 New version of video , It is highly recommended that you have a look .
 Please add a picture description

原网站

版权声明
本文为[A pole]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060913400940.html