redis雪崩和穿透的解決方法 Redis服務支持5000萬的QPS,有什么好的思路?
Redis服務支持5000萬的QPS,有什么好的思路?如果有面試問你這個問題,工資應該是20萬年,其他選擇分紅應該支付。這個想法不是堆機器就是堆機器。redis為什么是單線程?1.redis基于內(nèi)存,
Redis服務支持5000萬的QPS,有什么好的思路?
如果有面試問你這個問題,工資應該是20萬年,其他選擇分紅應該支付。這個想法不是堆機器就是堆機器。
redis為什么是單線程?
1.
redis基于內(nèi)存,內(nèi)存的讀寫速度非常快
2.
redis是單線程的,這為上下文切換線程節(jié)省了大量時間
3.
redis使用多路復用技術(shù)處理并發(fā)連接。Epoll用于無阻塞IO的內(nèi)部實現(xiàn),使用Epoll自己的簡單事件框架
redis以單個進程的形式運行,命令一個接一個地執(zhí)行,解決了程序的并發(fā)問題。因此,當數(shù)據(jù)涉及到并發(fā)問題時,比如seckill,當用戶請求時,我們將數(shù)據(jù)行存儲在redis中,redis中的庫存將減少。Redis是單線程,所以不會超過Redis。成功縮減后,將拒絕后續(xù)請求,然后在數(shù)據(jù)庫中縮減庫存。這是基本的工作原理
但是線程的速度只能依靠單個處理器,內(nèi)存的速度,處理器上的緩存速度,以及總線的傳輸速度。剩下的是你的網(wǎng)絡(luò)io。然而,線程的高并發(fā)性完全取決于程序的運行速度。Redis絕對不是線程。連接就是一根線。你不應該正確理解它。