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