当前位置:网站首页>Linux server development, MySQL cache strategy

Linux server development, MySQL cache strategy

2022-07-07 07:55:00 Tuen Mun pheasant calls me chicken

Recommend a free open course of zero sound College , Personally, I think the teacher spoke well , Share with you :Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK, Streaming media ,CDN,P2P,K8S,Docker,TCP/IP, coroutines ,DPDK Etc , Learn now
MySql What are the ways to improve read and write performance ?

  • Connection pool Blocking io+ Thread pool
  • Asynchronous connection Non blocking io
  • sql Execute punishment : Carry out in a timely manner + Precompile execution
  • Read / write separation
  • Cache scheme
    Master-slave replication solves the problem of single point of failure .

Reading strategy

  • First look at cache There's no data in it , There is a direct return .
  • without , Go again MySql Take the data from the library .
  • If MySql There are data in it. , The cache to cache
  • without , That is, there is no

Final consistency and strong consistency .

Write strategy

  • Delete first cache, And then delete MySql
  • Delete first cache, Revise MySql. Modify cache directly after improvement , Set expiration time , modify MySql Remove the expiration time .
  • Delete first cache, Add again MySql. Modify cache directly after improvement , Set expiration time , modify MySql Remove the expiration time .

Asynchronous operation is compared with synchronous operation , It mainly saves the time of network transmission .

Cache penetration

redis and MySql None of them exist ,redis No data will always be requested MySql, and MySql There is nothing but to return . When a large number of requests accumulate to MySql, Finally, I was overwhelmed .、
Solution :

  • Find out MySql non-existent , take redis Set up <key,nil> Set expiration time , The next visit is not visit MySql, It is easy to cause many invalid redis Cache data .
  • Set up the bloon filter , The non-existent hotspot data is directly filtered out .

Cache breakdown

redis No, ,MySql There's data . When there are a large number of concurrent requests , Request to pile up MySql Too big . One of them Key A lot of requests .

  • Lock , Operate with lock , Sleep without lock .
  • Will be a lot hot key Set not to expire .

Cache avalanche

redis Downtime , All data are empty , Cause collapse MySql. Multiple Key A lot of advice .

  • Highly available cluster solutions , Like sentinel mode ,cluster Pattern .
  • Set the random period value or other mechanism to stagger the expiration time .
  • redis Turn on persistence .
原网站

版权声明
本文为[Tuen Mun pheasant calls me chicken]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130647575230.html