Redis进阶-Redis使用建议一二事
生活随笔
收集整理的這篇文章主要介紹了
Redis进阶-Redis使用建议一二事
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 命令使用
- 客戶端使用
命令使用
-
【推薦】 O(N)命令關注N的數量
例如hgetall、lrange、smembers、zrange、sinter等并非不能使用,但是需要明確N的值。有遍歷的需求可以使用hscan、sscan、zscan代替。
-
【推薦】 禁用命令
禁止線上使用keys、flushall、flushdb等,通過redis的rename機制禁掉命令,或者使用scan的 方式漸進式處理。
-
【推薦】合理使用select
redis的多數據庫較弱,使用數字進行區分,很多客戶端支持較差,同時多業務用多數據庫實際還是單線程處理,會有干擾。
-
【推薦】使用批量操作提高效率
原生命令:例如mget、mset。
非原生命令:可以使用pipeline提高效率但要注意控制一次批量操作的元素個數(例如500以內,實際也和元素字節數有關)。
-
pipeline vs 原生命令
1. 原生的命令是原子操作,pipeline是非原子操作。
2. pipeline可以打包不同的命令,原生做不到
3. pipeline需要客戶端和服務端同時支持
- 【建議】Redis事務功能較弱,不建議過多使用,可以用lua替代
客戶端使用
-
【推薦】 避免多個應用使用一個Redis實例
正例:不相干的業務拆分,公共數據做服務化。
- 【推薦】 使用帶有連接池的數據庫,可以有效控制連接,同時提高效率,標準使用方式:
-
【建議】高并發下建議客戶端添加熔斷功能(例如netflix hystrix)
-
【建議】 設置合理的密碼,如有必要可以使用SSL加密訪問
總結
以上是生活随笔為你收集整理的Redis进阶-Redis使用建议一二事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis进阶-Redis键值设计及Bi
- 下一篇: linux cmake编译源码,linu