7.【建議】必要情況下使用monitor命令時,要注意不要長時間使用。
三、客戶端使用
1.【推薦】
避免多個應用使用一個Redis實例
正例:不相干的業務拆分,公共數據做服務化。
2.【推薦】
使用帶有連接池的數據庫,可以有效控制連接,同時提高效率,標準使用方式:
3.【建議】
高併發下建議客戶端添加熔斷功能(例如netflix hystrix)
4.【推薦】
設置合理的密碼,如有必要可以使用SSL加密訪問(阿里雲Redis支持)
5.【建議】
根據自身業務類型,選好maxmemory-policy(最大內存淘汰策略),設置好過期時間。
默認策略是volatile-lru,即超過最大內存後,在過期鍵中使用lru算法進行key的剔除,保證不過期數據不被刪除,但是可能會出現OOM問題。
其他策略如下:
- allkeys-lru:根據LRU算法刪除鍵,不管數據有沒有設置超時屬性,直到騰出足夠空間為止。
- allkeys-random:隨機刪除所有鍵,直到騰出足夠空間為止。
- volatile-random:隨機刪除過期鍵,直到騰出足夠空間為止。
- volatile-ttl:根據鍵值對象的ttl屬性,刪除最近將要過期數據。如果沒有,回退到noeviction策略。
- noeviction:不會剔除任何數據,拒絕所有寫入操作並返回客戶端錯誤信息"(error) OOM command not allowed when used memory",此時Redis只響應讀操作。
四、相關工具
- 【推薦】:數據同步
redis間數據同步可以使用:redis-port
- 【推薦】:big key搜索
- redis大key搜索工具
- 【推薦】:熱點key尋找(內部實現使用monitor,所以建議短時間使用)
五 、附錄:刪除bigkey
- 下面操作可以使用pipeline加速。
- 忍 redis 4.0已經支持key的異步刪除,歡迎使用。
1. Hash刪除: hscan + hdel
2. List刪除: ltrim
3. Set刪除: sscan + srem
4. SortedSet刪除: zscan + zrem
閱讀更多 程序員小新人學習 的文章