redis需要讀寫分離嗎?
redis需要讀寫分離嗎?假如做redis讀寫分離,有明顯效果嗎?什麼樣的場景需要redis做讀寫分離?
當然需要,和mysql一樣,單台redis總是有極限,雖然磁碟io瓶頸少了(由於persistent的需求,磁碟io也是有的),但是網路io是比磁碟io還慢的io。
讀寫分離適合大訪問(大到單台redis感覺很慢了),並且寫操作遠小於讀操作的情況。
對於更大訪問,寫操作單台也扛不住的時候,這時候就是考慮sharding了,淘寶的TDDL就是基於mysql的一個sharding方案,mysql cluster和redis cluster都是其官方的sharding方案。
謝邀。沒必要。coins說的不對。和nosql無關。
redis一般是用作內存資料庫,所以不存在IO瓶頸。
讀寫分離是對於有磁碟IO阻塞 的資料庫才有的概念。 nosql不應該有這種概念。
比如,redis你讀的話,會瞬間從內存檢索出你要的數據並通過網路IO發給你
而你寫的話也會瞬間檢索到該寫的內存區域並寫進去。所以不存在讀寫分離這種需求。要談分離,也僅僅是並發量大之後的集群壓力分離,把讀寫壓力分攤到集群的單元節點上。而不是把[讀][寫]拆開。
如果讀請求數量遠超寫請求,導致集群數據copy成本遠小於讀請求成本。 同時能一定程度上接受數據的不一致性,那可以做讀寫分離的。
同意趙老師的回答, redis再怎麼快, 一秒能處理的請求也是有限的, 通過一主多從, 讀寫分離, 處理能力能得到很大提高.
我們的線上系統最開始有時會出現性能問題, 後來也是通過redis讀寫分離搞定的, 我們系統單寫還可以撐住, 否則就要考慮redis集群了.
最後再抄點redis in action里的內容: the replicas can service read queries. In the relational database world, it』s not uncommon for a single master database to send writes out to multiple slaves, with the slaves performing all of the read queries. Redis has adopted this method of replication as a way of helping to scale.
不需要,數據分塊,集群方式。
Replication can be used both for scalability, in order to have multiple slaves for read-only queries (for example, slow O(N) operations can be offloaded to slaves), or simply for data redundancy.Replication a€「 Redis
推薦閱讀:
※隊列是什麼意思?
※redis的初級使用
※Redis服務支持5000萬的QPS,有什麼好的思路?
※Redis源碼剖析--跳躍表zskiplist
TAG:Redis |