亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

分布式緩存組件-Redis你還用錯,來看看Redis秘籍

緩存設(shè)計(jì)

設(shè)計(jì)Key的注意事項(xiàng)

注意以下幾點(diǎn)

簡單、簡潔、可讀、無特殊符號、分組。

簡單:不要過長,太長會占更多內(nèi)存

簡潔:清晰明了、不拖泥帶水

可讀:可讀性良好,知道是什么

不使用特殊符號:不要用空格、引號或其他轉(zhuǎn)移符號。

key分組:防止在公共redis里key沖突。

Value值的注意事項(xiàng)

類型選擇

可能很多童鞋還在想著Redis只有5種數(shù)據(jù)類型,但是實(shí)際上現(xiàn)在明面上已經(jīng)大致有八種數(shù)據(jù)類型。

Redis支持多種數(shù)據(jù)類型:字符串、散列表、列表、集合、有序集合、位圖、hyperloglogs、地理空間,我們要結(jié)合業(yè)務(wù)需求合理的選擇。

壓縮

如果使用String類型,Value內(nèi)容過大,需要考慮進(jìn)行壓縮、序列化(尤其使用json序列化后存儲,需要進(jìn)行壓縮)。

分布式緩存組件-Redis你還用錯,來看看Redis秘籍

Cache 批量執(zhí)行

批量執(zhí)行

批量執(zhí)行主要有mset、mget和pipeline,這幾個基本上我們用哪個都可以提升我們的執(zhí)行效率。

需要考慮兩種批量最大的區(qū)別,mget、mset是原生的命令,是原子的。而pipeline是管道,在管道上發(fā)送多個指令,是非原子的。

除此之外pipeline可以組合不同的命令,mget、mset則不行。

禁用命令

keys、flushall、flushdb等指令,我們直接在中間件層面進(jìn)行攔截,終止。

內(nèi)存回收

Redis自帶了很多內(nèi)存回收策略。為了保證內(nèi)存的可用,我們可以根據(jù)業(yè)務(wù)場景選擇不同的內(nèi)存策略。

- noeviction:當(dāng)內(nèi)存達(dá)到閾值,申請內(nèi)存操作會跑錯。

- allkeys-lru:在所有key上采用lru算法進(jìn)行刪除回收內(nèi)存。

- volatile-lru:在設(shè)置了expire的key上采用lru算法進(jìn)行刪除回收內(nèi)存。

- allkeys-random:在所有key中進(jìn)行隨機(jī)刪除回收內(nèi)存。

- volatile-random:在設(shè)置了expire的key上隨機(jī)進(jìn)行刪除回收內(nèi)存。

- volatile-ttl:在設(shè)置了expire的可以上搜索,找到具有更早過期時(shí)間的key優(yōu)先刪除,回收內(nèi)存。

分布式緩存組件-Redis你還用錯,來看看Redis秘籍

內(nèi)存碎片

內(nèi)存碎片

Redis長期運(yùn)行后,會出現(xiàn)一定程度的內(nèi)存碎片,導(dǎo)致內(nèi)存還有,但是內(nèi)存不夠用了,這時(shí)候我們就需要做一些調(diào)優(yōu),尤其是對內(nèi)存碎片的調(diào)優(yōu)。

Redis4開始支持內(nèi)存碎片清理功能,兩種方式:

支持在運(yùn)行期進(jìn)行自動內(nèi)存碎片清理 (config set activedefrag yes)

支持通過命令 memory purge 進(jìn)行清理(與自動清理區(qū)域不同)

過期時(shí)間

我們不能把Redis完全的當(dāng)做DB使用,因?yàn)槠涫褂玫氖莾?nèi)存,如果數(shù)據(jù)只添加不整理,那么很容易導(dǎo)致內(nèi)存不夠,所以我們需要對數(shù)

設(shè)置過期時(shí)間,如果是熱點(diǎn)數(shù)據(jù)我們時(shí)間可以設(shè)置長一些,但是沒有永遠(yuǎn)的熱點(diǎn),所以不建議設(shè)置永久。

分布式緩存組件-Redis你還用錯,來看看Redis秘籍

并發(fā)安全

并發(fā)安全

原子性

Redis自身提供了Watch,以及一些原子的加減指令,有時(shí)候已經(jīng)夠用了,但是如果遇到多個key組成一個原子的操作,我們需要采用Lua來實(shí)現(xiàn),提交lua腳本到服務(wù)端,保證操作是原子的。

熔斷降級

我們可以對客戶端做熔斷降級,比如訪問Redis超時(shí),那么可以啟用熔斷,當(dāng)前請求的后續(xù)其他Redis請求,都直接返回,不走redis

防止因?yàn)檫^度的超時(shí),直接拖垮當(dāng)前服務(wù),甚至拖垮整個服務(wù)。可以考慮hystrix或sentinel,也可以自己通過滑動窗口統(tǒng)計(jì)實(shí)現(xiàn)一個簡單的斷路器。

密碼

推薦使用密碼,這樣可以保證一定程度的安全。

當(dāng)然最好是可以有一個密碼管理服務(wù),可以管理DB、Redis等數(shù)據(jù)源的密碼,可以通過一個token來獲取密碼,而不是直接配置明文密碼。

分享到:
標(biāo)簽:分布式 緩存 組件 Redis
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定