redis為什麼這麼火該怎麼用

2021-09-20 01:10:00 字數 1529 閱讀 5082

redis是乙個基於記憶體hash結構的快取型db,同mysql等傳統資料庫對比效能時,讀操作在1k左右資料的時候相差基本上在10-100倍的差別,寫入的效能差別就更大了,下面是一些測試資料

通過對redis的set、get命令測試觀察,redis的讀寫效能在單執行緒下可以達到每秒2w左右;通過對mysql的select和insert、delete語句測試,mysql的讀效能可達到5000每秒左右,寫效能可到達3000每秒,讀效能基本是寫效能的2倍。而上述測試是基於redis單例項、單連線的情況,如果根據cpu核數來增加redis例項,並且使用pie和多連線,這個資料還能輕鬆的再上乙個數量級~也可參見一下網上其他人發布的一些redis效能測試,例如:

上面分析了redis的效能非常高,基本上同機器配置下完全吊打傳統sql,甚至nosql的mongodb等。即使這樣redis也只是乙個分布式快取,或者說是分布式快取資料庫,那麼redis肯定不能像傳統資料一樣,動不動放個幾t的資料,一般都是用來放熱資料或者體量小的資料,其他的資料還是使用佇列通過後台服務放到sql db裡面;另外根據redis的特性,建議伺服器cpu核心數要留個1/4,每個例項的記憶體最得多出1/2;假如24核的120g的伺服器,建議部署18個reids例項,每個例項5g的記憶體,實際使用不要超過3g的資料量~reids是快取就繼承了快取的優缺點,效能高是優點,缺點:快取穿透、快取雪崩。

1.快取穿透:快取穿透是指查詢乙個一定不存在的資料,由於快取是不命中時被動寫的,並且出於容錯考慮,如果從儲存層查不到資料則不寫入快取,這將導致這個不存在的資料每次請求都要到儲存層去查詢,失去了快取的意義。在流量大時,可能db就掛了。

解決辦法就是將從db過來的返回值進行快取,根據實際情況重新加熱,若db返回是空則快取幾分鐘就可以了。

2.快取雪崩:在我們設定快取時採用了相同的過期時間或者快取伺服器因某些原因無法使用時,導致快取在某一時刻同時失效,請求全部**到db,db瞬時壓力過重雪崩。

解決辦法過期時間上增加乙個範圍的隨機值,使用redis sentinel 和 redis cluster 實現高可用,另增設乙個壽命更短的本機快取來解決redis分布快取搶修時的問題。

在發生無論是快取穿透還是快取雪崩,都建議使用佇列來排隊、拒絕大量請求湧入和分布式互斥鎖來避免後端資料服務被衝擊,防止已有的資料出現問題。

redis很強大,無論是哨兵式集群還是自帶的redis cluster方式集群,但是一定要對redis了解清楚才能更好的使用~

redis為什麼這麼火該怎麼用

redis是乙個基於記憶體hash結構的快取型db,同mysql等傳統資料庫對比效能時,讀操作在1k左右資料的時候相差基本上在10 100倍的差別,寫入的效能差別就更大了,下面是一些測試資料 通過對redis的set get命令測試觀察,redis的讀寫效能在單執行緒下可以達到每秒2w左右 通過對m...

為什麼IT行業這麼火?

it行業可謂是近幾年最火的行業之一,隨著網際網路技術的不斷發展,越來越多的人都涉足於此。it行業這麼火,你想過原因沒?it01 it行業是乙個新型朝陽行業 it行業是乙個新型朝陽行業,高速增加。現在是資訊社會,發展最快的就是 it行業。傳統行業,自然發展緩慢。全國gdp平均增長是 9 就已經是二環內...

OpenStack為什麼這麼火?

csdn報道 在it管理軟體提供商zenoss發布的2011年openstack採用的調查報告中顯示 73 的被調查者認為openstack部署由節約成本和害怕廠家鎖定所驅動。zenoss ceo bill karpovich表示,openstack在過去幾年的增長迅速,並有了巨大的影響力,將繼續支...