redis使用總結

redis使用總結

  1. Redis常見性能問題和解決方案:
    1.1. Master最好不要做任何持久化工作,如RDB內存快照和AOF日誌文件
    1.2. 如果數據比較重要,某個Slave開啓AOF備份數據,策略設置爲每秒同步一次
    1.3. 爲了主從複製的速度和連接的穩定性,Master和Slave最好在同一個局域網內
    1.4. 儘量避免在壓力很大的主庫上增加從庫

  2. Redis持久化數據和緩存怎麼做擴容?
    擴容的話可以通過redis集羣實現,之前做項目的時候用過自己搭的redis集羣
    最近看的一篇比較好的博文
    《redis的持久化和緩存機制》 :https://blog.csdn.net/tr1912/article/details/70197085?foxhandler=RssReadRenderProcessHandler

  3. Redis 分區的優勢、不足以及分區類型
    3.1. 分區的優勢
    通過利用多臺計算機內存的和值,允許我們構造更大的數據庫。
    通過多核和多臺計算機,允許我們擴展計算能力;通過多臺計算機和網絡適配器,允許我們擴展網絡帶寬。
    3.2.分區的不足
    redis的一些特性在分區方面表現的不是很好:

    涉及多個key的操作通常是不被支持的。舉例來說,當兩個set映射到不同的redis實例上時,你就不能對這兩個set執行交集操作。
    涉及多個key的redis事務不能使用。
    當使用分區時,數據處理較爲複雜,比如你需要處理多個rdb/aof文件,並且從多個實例和主機備份持久化文件。
    增加或刪除容量也比較複雜。redis集羣大多數支持在運行時增加、刪除節點的透明數據平衡的能力,但是類似於客戶端分區、代理等其他系統則不支持這項特性。然而,一種叫做presharding的技術對此是有幫助的。
    官方文檔提供的講解:http://www.redis.net.cn/tutorial/3524.html

  4. Redis回收進程如何工作的? Redis回收使用的是什麼算法?
    Redis內存回收:LRU算法(寫的很不錯,推薦):https://www.cnblogs.com/WJ5888/p/4371647.html

  5. Redis 大量數據插入
    官方文檔給的解釋:http://www.redis.cn/topics/mass-insert.html

  6. Redis的併發競爭問題如何解決?
    Redis爲單進程單線程模式,採用隊列模式將併發訪問變爲串行訪問。Redis本身沒有鎖的概念,Redis對於多個客戶端連接並不存在競爭,但是在Jedis客戶端對Redis進行併發訪問時會發生連接超時、數據轉換錯誤、阻塞、客戶端關閉連接等問題,這些問題均是由於客戶端連接混亂造成。對此有2種解決方法:
     1.客戶端角度,爲保證每個客戶端間正常有序與Redis進行通信,對連接進行池化,同時對客戶端讀寫Redis操作採用內部鎖synchronized。
    2.服務器角度,利用setnx實現鎖。
     注:對於第一種,需要應用程序自己處理資源的同步,可以使用的方法比較通俗,可以使用synchronized也可以使用lock;第二種需要用到Redis的setnx命令,但是需要注意一些問題。

  7. 其他注意事項:
    1、redis必須帶配置文件啓動,如果直接啓動的話,它會使用默認配置(而且並不存在這個默認配置文件,所以不要想改它)。
    如果修改了配置文件一定要通過命令行來啓動(主要針對windows系統來說)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章