redis使用總結
-
Redis常見性能問題和解決方案:
1.1. Master最好不要做任何持久化工作,如RDB內存快照和AOF日誌文件
1.2. 如果數據比較重要,某個Slave開啓AOF備份數據,策略設置爲每秒同步一次
1.3. 爲了主從複製的速度和連接的穩定性,Master和Slave最好在同一個局域網內
1.4. 儘量避免在壓力很大的主庫上增加從庫 -
Redis持久化數據和緩存怎麼做擴容?
擴容的話可以通過redis集羣實現,之前做項目的時候用過自己搭的redis集羣
最近看的一篇比較好的博文
《redis的持久化和緩存機制》 :https://blog.csdn.net/tr1912/article/details/70197085?foxhandler=RssReadRenderProcessHandler -
Redis 分區的優勢、不足以及分區類型
3.1. 分區的優勢
通過利用多臺計算機內存的和值,允許我們構造更大的數據庫。
通過多核和多臺計算機,允許我們擴展計算能力;通過多臺計算機和網絡適配器,允許我們擴展網絡帶寬。
3.2.分區的不足
redis的一些特性在分區方面表現的不是很好:涉及多個key的操作通常是不被支持的。舉例來說,當兩個set映射到不同的redis實例上時,你就不能對這兩個set執行交集操作。
涉及多個key的redis事務不能使用。
當使用分區時,數據處理較爲複雜,比如你需要處理多個rdb/aof文件,並且從多個實例和主機備份持久化文件。
增加或刪除容量也比較複雜。redis集羣大多數支持在運行時增加、刪除節點的透明數據平衡的能力,但是類似於客戶端分區、代理等其他系統則不支持這項特性。然而,一種叫做presharding的技術對此是有幫助的。
官方文檔提供的講解:http://www.redis.net.cn/tutorial/3524.html -
Redis回收進程如何工作的? Redis回收使用的是什麼算法?
Redis內存回收:LRU算法(寫的很不錯,推薦):https://www.cnblogs.com/WJ5888/p/4371647.html -
Redis 大量數據插入
官方文檔給的解釋:http://www.redis.cn/topics/mass-insert.html -
Redis的併發競爭問題如何解決?
Redis爲單進程單線程模式,採用隊列模式將併發訪問變爲串行訪問。Redis本身沒有鎖的概念,Redis對於多個客戶端連接並不存在競爭,但是在Jedis客戶端對Redis進行併發訪問時會發生連接超時、數據轉換錯誤、阻塞、客戶端關閉連接等問題,這些問題均是由於客戶端連接混亂造成。對此有2種解決方法:
1.客戶端角度,爲保證每個客戶端間正常有序與Redis進行通信,對連接進行池化,同時對客戶端讀寫Redis操作採用內部鎖synchronized。
2.服務器角度,利用setnx實現鎖。
注:對於第一種,需要應用程序自己處理資源的同步,可以使用的方法比較通俗,可以使用synchronized也可以使用lock;第二種需要用到Redis的setnx命令,但是需要注意一些問題。 -
其他注意事項:
1、redis必須帶配置文件啓動,如果直接啓動的話,它會使用默認配置(而且並不存在這個默認配置文件,所以不要想改它)。
如果修改了配置文件一定要通過命令行來啓動(主要針對windows系統來說)