日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 21ic電子網(wǎng)
[導(dǎo)讀]Redis 在當(dāng)前的技術(shù)社區(qū)里是非常熱門的。從來自 Antirez 一個小小的個人項(xiàng)目到成為內(nèi)存數(shù)據(jù)存儲行業(yè)的標(biāo)準(zhǔn),Redis已經(jīng)走過了很長的一段路。 隨之而來的一系列最佳實(shí)踐,使得大多數(shù)人可以正確地使用 Redis。下面我們將探索正確使用 Redis 的10個技巧。 1、停止

Redis 在當(dāng)前的技術(shù)社區(qū)里是非常熱門的。從來自 Antirez 一個小小的個人項(xiàng)目到成為內(nèi)存數(shù)據(jù)存儲行業(yè)的標(biāo)準(zhǔn),Redis已經(jīng)走過了很長的一段路。


隨之而來的一系列最佳實(shí)踐,使得大多數(shù)人可以正確地使用 Redis。下面我們將探索正確使用 Redis 的10個技巧。


1、停止使用 KEYS *

Okay,以挑戰(zhàn)這個命令開始這篇文章,或許并不是一個好的方式,但其確實(shí)可能是最重要的一點(diǎn)。很多時候當(dāng)我們關(guān)注一個redis實(shí)例的統(tǒng)計數(shù)據(jù),我們會快速地輸入”KEYS *”命令,這樣key的信息會很明顯地展示出來。平心而論,從程序化的角度出發(fā)往往傾向于寫出下面這樣的偽代碼

for key in 'keys *':doAllTheThings()


但是當(dāng)你有1300萬個key時,執(zhí)行速度將會變慢。因?yàn)镵EYS命令的時間復(fù)雜度是O(n),其中n是要返回的keys的個數(shù),這樣這個命令的復(fù)雜度就取決于數(shù)據(jù)庫的大小了。并且在這個操作執(zhí)行期間,其它任何命令在你的實(shí)例中都無法執(zhí)行。作為一個替代命令,看一下 SCAN 吧,其允許你以一種更友好的方式來執(zhí)行… SCAN 通過增量迭代的方式來掃描數(shù)據(jù)庫。這一操作基于游標(biāo)的迭代器來完成的,因此只要你覺得合適,你可以隨時停止或繼續(xù)。


2、找出拖慢 Redis 的罪魁禍?zhǔn)?/p>

由于 Redis 沒有非常詳細(xì)的日志,要想知道在 Redis 實(shí)例內(nèi)部都做了些什么是非常困難的。幸運(yùn)的是 Redis 提供了一個下面這樣的命令統(tǒng)計工具:

127.0.0.1:6379> INFO commandstats# Commandstatscmdstat_get:calls=78,usec=608,usec_per_call=7.79 cmdstat_setex:calls=5,usec=71,usec_per_call=14.20 cmdstat_keys:calls=2,usec=42,usec_per_call=21.00 cmdstat_info:calls=10,usec=1931,usec_per_call=193.10


通過這個工具可以查看所有命令統(tǒng)計的快照,比如命令執(zhí)行了多少次,執(zhí)行命令所耗費(fèi)的毫秒數(shù)(每個命令的總時間和平均時間)只需要簡單地執(zhí)行 CONFIG RESETSTAT 命令就可以重置,這樣你就可以得到一個全新的統(tǒng)計結(jié)果。


3、 將 Redis-Benchmark 結(jié)果作為參考,而不要一概而論

Redis 之父 Salvatore 就說過:“通過執(zhí)行GET/SET命令來測試Redis就像在雨天檢測法拉利的雨刷清潔鏡子的效果”。很多時候人們跑到我這里,他們想知道為什么自己的Redis-Benchmark統(tǒng)計的結(jié)果低于最優(yōu)結(jié)果 。但我們必須要把各種不同的真實(shí)情況考慮進(jìn)來,例如:

  • 可能受到哪些客戶端運(yùn)行環(huán)境的限制?

  • 是同一個版本號嗎?

  • 測試環(huán)境中的表現(xiàn)與應(yīng)用將要運(yùn)行的環(huán)境是否一致?


Redis-Benchmark的測試結(jié)果提供了一個保證你的 Redis-Server 不會運(yùn)行在非正常狀態(tài)下的基準(zhǔn)點(diǎn),但是你永遠(yuǎn)不要把它作為一個真實(shí)的“壓力測試”。壓力測試需要反應(yīng)出應(yīng)用的運(yùn)行方式,并且需要一個盡可能的和生產(chǎn)相似的環(huán)境。


4、Hashes 是你的最佳選擇

以一種優(yōu)雅的方式引入 hashes 吧。hashes 將會帶給你一種前所未有的體驗(yàn)。之前我曾看到過許多類似于下面這樣的key結(jié)構(gòu):

foo:first_namefoo:last_namefoo:address

上面的例子中,foo 可能是一個用戶的用戶名,其中的每一項(xiàng)都是一個單獨(dú)的 key。這就增加了 犯錯的空間,和一些不必要的 key。使用 hash 代替吧,你會驚奇地發(fā)現(xiàn)竟然只需要一個 key :

127.0.0.1:6379> HSET foo first_name "Joe" (integer) 1 127.0.0.1:6379> HSET foo last_name "Engel" (integer) 1 127.0.0.1:6379> HSET foo address "1 Fanatical Pl" (integer) 1 127.0.0.1:6379> HGETALL foo1) "first_name" 2) "Joe" 3) "last_name" 4) "Engel" 5) "address" 6) "1 Fanatical Pl" 127.0.0.1:6379> HGET foo first_name"Joe"



5、設(shè)置 key 值的存活時間

無論什么時候,只要有可能就利用key超時的優(yōu)勢。一個很好的例子就是儲存一些諸如臨時認(rèn)證key之類的東西。當(dāng)你去查找一個授權(quán)key時——以O(shè)AUTH為例——通常會得到一個超時時間。這樣在設(shè)置key的時候,設(shè)成同樣的超時時間,Redis就會自動為你清除!而不再需要使用KEYS *來遍歷所有的key了,怎么樣很方便吧?


6、 選擇合適的回收策略

既然談到了清除key這個話題,那我們就來聊聊回收策略。當(dāng) Redis 的實(shí)例空間被填滿了之后,將會嘗試回收一部分key。根據(jù)你的使用方式,我強(qiáng)烈建議使用 volatile-lru 策略——前提是你對key已經(jīng)設(shè)置了超時。


但如果你運(yùn)行的是一些類似于 cache 的東西,并且沒有對 key 設(shè)置超時機(jī)制,可以考慮使用 allkeys-lru 回收機(jī)制。我的建議是先在這里查看一下可行的方案。


7、如果你的數(shù)據(jù)很重要,請使用 Try/Except

如果必須確保關(guān)鍵性的數(shù)據(jù)可以被放入到 Redis 的實(shí)例中,我強(qiáng)烈建議將其放入 try/except 塊中。幾乎所有的Redis客戶端采用的都是“發(fā)送即忘”策略,因此經(jīng)常需要考慮一個 key 是否真正被放到 Redis 數(shù)據(jù)庫中了。至于將 try/expect 放到 Redis 命令中的復(fù)雜性并不是本文要講的,你只需要知道這樣做可以確保重要的數(shù)據(jù)放到該放的地方就可以了。


8、不要耗盡一個實(shí)例

無論什么時候,只要有可能就分散多redis實(shí)例的工作量。從3.0.0版本開始,Redis就支持集群了。Redis集群允許你基于key范圍分離出部分包含主/從模式的key。完整的集群背后的“魔法”可以在這里找到。但如果你是在找教程,那這里是一個再適合不過的地方了。如果不能選擇集群,考慮一下命名空間吧,然后將你的key分散到多個實(shí)例之中。關(guān)于怎樣分配數(shù)據(jù),在redis.io網(wǎng)站上有這篇精彩的評論。


9、內(nèi)核越多越好嗎?!

當(dāng)然是錯的。Redis 是一個單線程進(jìn)程,即使啟用了持久化最多也只會消耗兩個內(nèi)核。除非你計劃在一臺主機(jī)上運(yùn)行多個實(shí)例——希望只會是在開發(fā)測試的環(huán)境下!——否則的話對于一個 Redis 實(shí)例是不需要2個以上內(nèi)核的。


10、高可用

到目前為止 Redis Sentinel 已經(jīng)經(jīng)過了很全面的測試,很多用戶已經(jīng)將其應(yīng)用到了生產(chǎn)環(huán)境中(包括 ObjectRocket )。如果你的應(yīng)用重度依賴于 Redis ,那就需要想出一個高可用方案來保證其不會掉線。

作者:Joe Engel

翻譯:飄揚(yáng)葉

來源:http://objectrocket.com/blog/how-to/10-quick-tips-about-redis/


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

21ic電子網(wǎng)

掃描二維碼,關(guān)注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

由臺達(dá)集團(tuán)于2026年3月29日通過美通社發(fā)布新聞稿《集裝箱式SST直流移動智算中心發(fā)布》中,第3張有誤,已進(jìn)行替換。特此更正,更新后的全文及圖片如下: 集裝箱式SST直流移動智算中心發(fā)布 臺達(dá)、漢騰科技、龍芯中科攜...

關(guān)鍵字: 移動 ST 固態(tài)變壓器 CPU

憑借AI驅(qū)動創(chuàng)新、可量化客戶影響力及行業(yè)領(lǐng)先的商業(yè)化卓越表現(xiàn)獲此殊榮 新澤西州伯克利高地2026年3月26日 /美通社/ -- 作為生命科學(xué)行業(yè)AI優(yōu)先數(shù)據(jù)分析解決方案的全...

關(guān)鍵字: ST OS AN BSP

這款新型多軌道衛(wèi)星通信終端可擴(kuò)展自主移動指揮與控制任務(wù)的能力,同時支持高速工業(yè)級移動通信應(yīng)用 采用小巧機(jī)身設(shè)計,具備業(yè)界領(lǐng)先的耐用性、堅固外殼、快速排水功能以及高IP防護(hù)等級 華盛頓州雷德蒙德, March 25,...

關(guān)鍵字: 衛(wèi)星 終端 ST 軌道

上海2026年3月25日 /美通社/ -- 以下報道來自海峽導(dǎo)報: 在中文大模型領(lǐng)域,2026年初的競爭焦點(diǎn)已悄然生變。當(dāng)市場熱議轉(zhuǎn)向應(yīng)用層時,階躍星辰旗下的 Step 3.5-Flash 憑借突出的推理效率在多項(xiàng)榜單...

關(guān)鍵字: 模型 TOKEN 全棧 ST

德國魯斯特2026年3月26日 /美通社/ -- 全球高性能與節(jié)能服務(wù)器解決方案領(lǐng)導(dǎo)廠商—神達(dá)控股股份有限公司(TWSE: 3706)旗下子公司神云科技股份有限公司(MiTAC Computing Technology...

關(guān)鍵字: COMPUTING MIT ST AI

業(yè)界首款 NVMe 和 SATA 抗輻射加固型 SSD,專為從低軌到深空的各類任務(wù)設(shè)計,采用梯度 Z 屏蔽和 AI 驅(qū)動自修復(fù)技術(shù),可在 LET 100 MeV?cm2/mg 及 TID 500 krad 的極端輻射環(huán)境...

關(guān)鍵字: FOR SSD RS ST

約73%受試者可以達(dá)到每四個月一次給藥;近60%的受試者具備延長至五個月一次給藥的潛力 美國舊金山和中國蘇州2026年3月24日 /美通社/ -- 信達(dá)生物制藥集團(tuán)(香港聯(lián)交所股票代碼:01801),一家致力...

關(guān)鍵字: AMD ST IO OV

全新便攜網(wǎng)關(guān)讓廣播機(jī)構(gòu)無需拆除現(xiàn)有 SDI 基礎(chǔ)設(shè)施,即可隨時隨地獲得即時、靈活的 ST2110 連接能力Patton?…… 讓我們互聯(lián)互通! “Fiberlink ST2110-TD 緊湊堅固。 隨手部署,隨處可用。...

關(guān)鍵字: LINK TE ST SD

該獎項(xiàng)彰顯了DXC的地位:作為可信賴的合作伙伴,助力全球企業(yè)實(shí)現(xiàn)現(xiàn)代化運(yùn)營并推進(jìn)AI應(yīng)用 弗吉尼亞州阿什本2026年3月18日 /美通社/ -- 領(lǐng)先的企業(yè)技術(shù)與創(chuàng)新合作伙伴DXC Technology(紐約證券交易所...

關(guān)鍵字: 福布斯 AI BSP ST

深圳2026年3月19日 /美通社/ -- 2026年的招聘市場,正陷入一場奇特的"算法互博":求職者用AI美化簡歷以通過篩選,企業(yè)用AI深挖細(xì)節(jié)以識別真?zhèn)?。這場博弈的背后,是簡歷日益"豐滿...

關(guān)鍵字: AI 代碼 LAB 模型
關(guān)閉