什么是热Key问题,如何解决热key问题
什么是熱Key呢?在Redis中,我們把訪問(wèn)頻率高的key,稱(chēng)為熱點(diǎn)key
如果某一熱點(diǎn)key的請(qǐng)求到服務(wù)器主機(jī)時(shí),由于請(qǐng)求量特別大,可能會(huì)導(dǎo)致主機(jī)資源不足,甚至宕機(jī),從而影響正常的服務(wù)。
而熱點(diǎn)Key是怎么產(chǎn)生的呢?主要原因有兩個(gè):
1、用戶(hù)消費(fèi)的數(shù)據(jù)遠(yuǎn)大于生產(chǎn)的數(shù)據(jù),如秒殺、熱點(diǎn)新聞等讀多寫(xiě)少的場(chǎng)景。
2、請(qǐng)求分片集中,超過(guò)單Redi服務(wù)器的性能,比如固定名稱(chēng)key,Hash落入同一臺(tái)服務(wù)器,瞬間訪問(wèn)量極大,超過(guò)機(jī)器瓶頸,產(chǎn)生熱點(diǎn)Key問(wèn)題。
那么在日常開(kāi)發(fā)中,如何識(shí)別到熱點(diǎn)key呢?
1、憑經(jīng)驗(yàn)判斷哪些是熱Key;
2、客戶(hù)端統(tǒng)計(jì)上報(bào);
3、服務(wù)代理層上報(bào)
如何解決熱key問(wèn)題?
1、Redis集群擴(kuò)容:增加分片副本,均衡讀流量;
2、將熱key分散到不同的服務(wù)器中;
3、使用二級(jí)緩存,即JVM本地緩存,減少Redis的讀請(qǐng)求。
總結(jié)
以上是生活随笔為你收集整理的什么是热Key问题,如何解决热key问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: redis是单线程的吗?为什么执行速度这
- 下一篇: Java的四种引用,强弱软虚,用到的场景