【譯】StackExchange.Redis中文使用文檔--鍵查找

KEYS, SCAN, FLUSHDB 這些在哪里痛倚?

這里是一些非常常見(jiàn)的常見(jiàn)問(wèn)題:

似乎沒(méi)有一個(gè) Keys(...) 或者 Scan(...) 方法? 如何查詢數(shù)據(jù)庫(kù)中存在哪些鍵?

或者

似乎沒(méi)有一個(gè) Flush(...) 方法滥酥?如何刪除數(shù)據(jù)庫(kù)中的所有的鍵剩岳?

很奇怪的是,這里的最后一個(gè)關(guān)鍵詞是數(shù)據(jù)庫(kù)仇矾。
因?yàn)镾tackExchange.Redis的目標(biāo)是針對(duì)集群等場(chǎng)景庸蔼,知道哪些命令針對(duì) 數(shù)據(jù)庫(kù) (可以是分布在多個(gè)節(jié)點(diǎn)上的邏輯數(shù)據(jù)庫(kù))以及哪些命令針對(duì) 服務(wù)器 是很重要的。
以下命令都針對(duì)單個(gè)服務(wù)器:

  • KEYS / SCAN
  • FLUSHDB / FLUSHALL
  • RANDOMKEY
  • CLIENT
  • CLUSTER
  • CONFIG / INFO / TIME
  • SLAVEOF
  • SAVE / BGSAVE / LASTSAVE
  • SCRIPT (不要混淆 EVAL / EVALSHA)
  • SHUTDOWN
  • SLOWLOG
  • PUBSUB (不要混淆 PUBLISH / SUBSCRIBE / 等)
  • 一些 DEBUG 操作

(我可能錯(cuò)過(guò)了至少一個(gè))大多數(shù)這些將顯得很明顯贮匕,但前3行不那么明顯:

  • KEYS / SCAN 只列出當(dāng)前服務(wù)器上的鍵; 而不是更廣泛的邏輯數(shù)據(jù)庫(kù)
  • FLUSHDB / FLUSHALL 只刪除當(dāng)前服務(wù)器上的密鑰;而不是更廣泛的邏輯數(shù)據(jù)庫(kù)
  • RANDOMKEY 僅選擇當(dāng)前服務(wù)器上的密鑰; 而不是更廣泛的邏輯數(shù)據(jù)庫(kù)

實(shí)際上姐仅,StackExchange.Redis 通過(guò)簡(jiǎn)單地隨機(jī)選擇目標(biāo)服務(wù)器來(lái)欺騙 IDatabase API上的 RANDOMKEY,但這對(duì)其他服務(wù)器是不可能的刻盐。

那么如何使用它們呢掏膏?

最簡(jiǎn)單的:從服務(wù)器開(kāi)始,而不是數(shù)據(jù)庫(kù)敦锌。

// get the target server
var server = conn.GetServer(someServer);

// show all keys in database 0 that include "foo" in their name
foreach(var key in server.Keys(pattern: "*foo*")) {
    Console.WriteLine(key);
}

// completely wipe ALL keys from database 0
server.FlushDatabase();

注意馒疹,與 IDatabase API(在 GetDatabase() 調(diào)用中已經(jīng)選擇了的目標(biāo)數(shù)據(jù)庫(kù))不同,這些方法對(duì)數(shù)據(jù)庫(kù)使用可選參數(shù)乙墙,或者默認(rèn)為0颖变。

Keys(...) 方法值得特別一提:它并不常見(jiàn),因?yàn)樗鼪](méi)有一個(gè) *Async 對(duì)應(yīng)伶丐。 這樣做的原因是悼做,在后臺(tái),系統(tǒng)將確定使用最合適的方法(基于服務(wù)器版本的 KEYS VS SCAN)哗魂,如果可能的話肛走,將使用 SCAN 方法 一個(gè) IEnumerable<RedisKey> 在內(nèi)部執(zhí)行所有的分頁(yè) - 所以你永遠(yuǎn)不需要看到游標(biāo)操作的實(shí)現(xiàn)細(xì)節(jié)。
如果 SCAN 不可用录别,它將使用 KEYS朽色,這可能導(dǎo)致服務(wù)器上的阻塞邻吞。 無(wú)論哪種方式,SCANKEYS 都需要掃描整個(gè)鍵空間葫男,所以在生產(chǎn)服務(wù)器上應(yīng)該避免 - 或者至少是針對(duì)從節(jié)點(diǎn)服務(wù)器抱冷。

所以我需要記住我連接到哪個(gè)服務(wù)器? 這真糟糕梢褐!

不旺遮,不完全是。 你可以使用 conn.GetEndPoints() 來(lái)列出節(jié)點(diǎn)(所有已知的節(jié)點(diǎn)盈咳,或者在原始配置中指定的節(jié)點(diǎn)耿眉,這些不一定是相同的東西),并且使用 GetServer() 迭代找到想要的服務(wù)器(例如鱼响,選擇一個(gè)從節(jié)點(diǎn))鸣剪。

查看原文

More

作者水平有限,若有疏漏或錯(cuò)誤還望提醒丈积,十分感謝筐骇。

您可以在這里 提出問(wèn)題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末江滨,一起剝皮案震驚了整個(gè)濱河市铛纬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牙寞,老刑警劉巖饺鹃,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莫秆,死亡現(xiàn)場(chǎng)離奇詭異间雀,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)镊屎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門惹挟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人缝驳,你說(shuō)我怎么就攤上這事连锯。” “怎么了用狱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵运怖,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我夏伊,道長(zhǎng)摇展,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任溺忧,我火速辦了婚禮咏连,結(jié)果婚禮上盯孙,老公的妹妹穿的比我還像新娘。我一直安慰自己祟滴,他們只是感情好振惰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著垄懂,像睡著了一般骑晶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上草慧,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天透罢,我揣著相機(jī)與錄音,去河邊找鬼冠蒋。 笑死羽圃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抖剿。 我是一名探鬼主播朽寞,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼斩郎!你這毒婦竟也來(lái)了脑融?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缩宜,失蹤者是張志新(化名)和其女友劉穎肘迎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锻煌,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妓布,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宋梧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匣沼。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捂龄,靈堂內(nèi)的尸體忽然破棺而出释涛,到底是詐尸還是另有隱情,我是刑警寧澤倦沧,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布唇撬,位于F島的核電站,受9級(jí)特大地震影響展融,放射性物質(zhì)發(fā)生泄漏窖认。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耀态。 院中可真熱鬧轮傍,春花似錦、人聲如沸首装。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仙逻。三九已至驰吓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間系奉,已是汗流浹背檬贰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缺亮,地道東北人翁涤。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像萌踱,于是被迫代替她去往敵國(guó)和親葵礼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理并鸵,服務(wù)發(fā)現(xiàn)鸳粉,斷路器,智...
    卡卡羅2017閱讀 134,665評(píng)論 18 139
  • //我所經(jīng)歷的大數(shù)據(jù)平臺(tái)發(fā)展史(三):互聯(lián)網(wǎng)時(shí)代 ? 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃囈語(yǔ)閱讀 51,227評(píng)論 10 200
  • 我正伏在案前繪圖园担,桌上的手機(jī)震動(dòng)了起來(lái)届谈,發(fā)出嗡嗡的低響。拿起一看弯汰,是媽來(lái)電話了艰山。我走到窗邊接通: “你那邊什么天氣...
    Reuniontime閱讀 287評(píng)論 0 0
  • 從小到大,我就希望能夠通過(guò)自已的那一點(diǎn)點(diǎn)微不足道的力量蝙泼,去改變你程剥,去影響你劝枣,后來(lái)我發(fā)現(xiàn)汤踏,一切都是我想太多,太天真舔腾,...
    我也不知道該叫什么好閱讀 392評(píng)論 0 1
  • 這一年回老家過(guò)暑假稳诚。難得的閑適安逸哗脖。逢夜沿家順勢(shì)而下,老家的夜市多得出奇。找一個(gè)小店才避,燒烤爐架旁橱夭,三四十串候著,...
    許大叔Xion閱讀 381評(píng)論 0 2