虹科干貨 | 邏輯數(shù)據(jù)庫(kù)可能已經(jīng)無(wú)法滿足需求了疫诽!

不可否認(rèn),單個(gè)Redis實(shí)例已經(jīng)不能滿足實(shí)際生產(chǎn)中的需求了旦委。為了解決由此帶來(lái)的問(wèn)題奇徒,何不試試用專用實(shí)例代替邏輯數(shù)據(jù)庫(kù)呢?

一缨硝、邏輯數(shù)據(jù)庫(kù)可能已經(jīng)無(wú)法滿足需求的4個(gè)跡象

1.有個(gè)吵鬧的鄰居

PS:“吵鬧的鄰居”指同一個(gè)Redis OSS實(shí)例中其它繁忙的邏輯數(shù)據(jù)庫(kù)摩钙。

場(chǎng)景:假設(shè)你是一家游戲公司的開(kāi)發(fā)人員,使用三個(gè)Redis邏輯數(shù)據(jù)庫(kù):一個(gè)用于緩存和排行榜查辩,一個(gè)用于匹配胖笛,一個(gè)作為消息代理。你的公司最近發(fā)布了一款非常成功的新游戲宜岛,每晚都有匹配請(qǐng)求的訪問(wèn)高峰期长踊。但是在這個(gè)時(shí)間段,你的排行榜顯示的數(shù)據(jù)可能不是實(shí)時(shí)的萍倡,并且消息代理的延遲正在增加身弊。

問(wèn)題的起源:

(1)這很可能是因?yàn)椋?b>單個(gè)Redis實(shí)例,從命令執(zhí)行的角度來(lái)看是單線程的列敲,并且按順序?yàn)槊總€(gè)請(qǐng)求提供服務(wù)阱佛。由于邏輯數(shù)據(jù)庫(kù)都共享同一實(shí)例,所以針對(duì)特定邏輯數(shù)據(jù)庫(kù)執(zhí)行的操作可能導(dǎo)致此該線程變慢甚至被阻塞戴而,從而影響其他數(shù)據(jù)庫(kù)凑术。如果您有吞吐密集型用例或者您的應(yīng)用程序使用O(n) 復(fù)雜度的 Redis 命令,這可能會(huì)導(dǎo)致性能問(wèn)題所意。

(2)在另一種情況下淮逊,您可能會(huì)遇到錯(cuò)誤。例如扁眯,在微服務(wù)環(huán)境中壮莹,每個(gè)服務(wù)都會(huì)讀寫(xiě)專用的邏輯數(shù)據(jù)庫(kù),所有服務(wù)的數(shù)據(jù)庫(kù)可能會(huì)由于某個(gè)微服務(wù)中的錯(cuò)誤而同時(shí)失效姻檀。將多個(gè)用例集中在一個(gè)Redis 實(shí)例中是不具備容錯(cuò)能力的命满。

如果您使用專用實(shí)例而不是邏輯數(shù)據(jù)庫(kù)會(huì)怎樣呢?

使用專用數(shù)據(jù)庫(kù)處理每個(gè)微服務(wù)的請(qǐng)求將為每個(gè)服務(wù)提供更好的性能绣版,并使您的應(yīng)用程序更具彈性胶台。

2.想要擴(kuò)展規(guī)模

避免“吵鬧鄰居”問(wèn)題的一種方法是擴(kuò)展您的數(shù)據(jù)庫(kù)歼疮。為此,您可以使用Redis OSS Cluster诈唬,它允許您在多個(gè)節(jié)點(diǎn)上進(jìn)行數(shù)據(jù)庫(kù)集群化韩脏。

存在的問(wèn)題:然而,這種方式僅支持位于索引0的邏輯數(shù)據(jù)庫(kù)铸磅,這意味著您只能擴(kuò)展一個(gè)邏輯數(shù)據(jù)庫(kù)赡矢,這可能會(huì)導(dǎo)致您將與更重要的用例相關(guān)的數(shù)據(jù)存儲(chǔ)在同一邏輯空間中,從而否定了保留單獨(dú)名稱空間的初衷阅仔。

如果您使用專用實(shí)例而不是邏輯數(shù)據(jù)庫(kù)會(huì)怎樣呢吹散?

您可以根據(jù)需要擴(kuò)展每個(gè)數(shù)據(jù)庫(kù),沒(méi)有限制八酒。

3.您的用例多樣空民,需要量身定制的配置

場(chǎng)景:想象一下您是一家電子商務(wù)公司的軟件開(kāi)發(fā)人員,您使用一個(gè)邏輯數(shù)據(jù)庫(kù)進(jìn)行緩存羞迷,使用另一個(gè)邏輯數(shù)據(jù)庫(kù)進(jìn)行會(huì)話管理界轩。您有以下要求:

· 當(dāng)會(huì)話處于活動(dòng)狀態(tài)時(shí),會(huì)話存儲(chǔ)數(shù)據(jù)是唯一的事務(wù)數(shù)據(jù)源衔瓮。因此浊猾,需要具備高可用和數(shù)據(jù)持久性以確保事務(wù)數(shù)據(jù)不會(huì)丟失。

· 如果您的緩存丟失报辱,永久存儲(chǔ)中始終有一份副本与殃。

盡管有這些要求单山,您的兩個(gè)邏輯數(shù)據(jù)庫(kù)必須共享相同的高可用性和持久性配置碍现,因?yàn)樗鼈兌脊蚕硐嗤膔edis.conf文件。

對(duì)于緩存用例而言米奸,相同的情況也適用于驅(qū)逐策略和內(nèi)存限制昼接,以及TLS證書(shū)、密碼悴晰,或是Redis OSS的redis.conf文件中的所有配置選項(xiàng)慢睡。

如果您使用專用實(shí)例而不是邏輯數(shù)據(jù)庫(kù)會(huì)怎樣呢?

不再需要妥協(xié)铡溪,您可以根據(jù)業(yè)務(wù)需求配置每個(gè)數(shù)據(jù)庫(kù)漂辐。

4.監(jiān)控和故障排除很痛苦

場(chǎng)景:因?yàn)檫壿嫈?shù)據(jù)庫(kù)共享相同的Redis進(jìn)程,您可能會(huì)發(fā)現(xiàn)監(jiān)控和故障排除變得很繁瑣棕硫。

案例1:monitor命令髓涯。它會(huì)將Redis服務(wù)器處理的每個(gè)命令都返回,無(wú)論您從哪個(gè)邏輯數(shù)據(jù)庫(kù)運(yùn)行它哈扮,它都會(huì)返回在服務(wù)器上運(yùn)行的所有邏輯數(shù)據(jù)庫(kù)的命令纬纪,盡管它會(huì)顯示每個(gè)命令的數(shù)據(jù)庫(kù)索引蚓再。

案例2:slowlog命令。在這里包各,沒(méi)有區(qū)分記錄的命令是在哪些邏輯數(shù)據(jù)庫(kù)中運(yùn)行的摘仅。例如,為了人為地創(chuàng)建一些執(zhí)行緩慢的命令:

· 我在索引0上運(yùn)行了兩次debug命令问畅,并在索引1上運(yùn)行了一次

· 然后我在索引1上運(yùn)行了slowlog get命令

其他場(chǎng)景:這同樣適用于日志娃属、延遲子命令,或是您想要grep 或從 Redisinfo命令獲取的任何值:連接的客戶端數(shù)量护姆、已用內(nèi)存膳犹、當(dāng)前IOPS、逐出鍵的數(shù)量等签则。

其他解決方案:

使用第三方工具來(lái)監(jiān)視Redis须床,比如Grafana,您可以在定義Redis數(shù)據(jù)源時(shí)指定數(shù)據(jù)庫(kù)編號(hào)渐裂。然而豺旬,儀表板中顯示的數(shù)據(jù)不一定是您定義的數(shù)據(jù)庫(kù)索引所獨(dú)有的。

獲取keyspace中正確的鍵數(shù)柒凉,但命令統(tǒng)計(jì)族阅、客戶端連接和IOPS并不基于所選的索引,這些值是整個(gè)Redis實(shí)例共享的。

設(shè)想一下膝捞,盡管閱讀儀表板和日志很復(fù)雜坦刀,但您發(fā)現(xiàn)緩存邏輯數(shù)據(jù)庫(kù)上的延遲來(lái)自于您在每次寫(xiě)入時(shí)啟用AOF,因?yàn)槟臅?huì)話存儲(chǔ)數(shù)據(jù)庫(kù)需要它蔬咬。

除了放寬會(huì)話數(shù)據(jù)庫(kù)的持久性要求之外鲤遥,你還能做什么呢?這又回到了邏輯數(shù)據(jù)庫(kù)已經(jīng)無(wú)法滿足需求的早期跡象:“吵鬧的鄰居”和獨(dú)特的配置要求林艘。

如果您使用專用實(shí)例而不是邏輯數(shù)據(jù)庫(kù)會(huì)怎樣呢盖奈?

您將更輕松、更快速地監(jiān)控每個(gè)數(shù)據(jù)庫(kù)的性能并識(shí)別問(wèn)題狐援,從而節(jié)省運(yùn)維時(shí)間和精力钢坦。

二、解決方案:邏輯數(shù)據(jù)庫(kù)的遷移

l?使用單獨(dú)的Redis OSS實(shí)例來(lái)滿足不同的需求啥酱。

l?利用Redis Enterprise 的集群級(jí)多租戶能力爹凹,解決“吵鬧的鄰居”、容錯(cuò)和通用配置方面的問(wèn)題镶殷。

無(wú)論您選擇哪種選項(xiàng)禾酱,都需要將邏輯索引遷移到不同的專用數(shù)據(jù)庫(kù)實(shí)例中。

?

您需要怎么做?

由于所有邏輯數(shù)據(jù)庫(kù)都保存在同一個(gè)RDB文件中宇植,這種遷移的第一步是手動(dòng)將每個(gè)邏輯數(shù)據(jù)庫(kù)的數(shù)據(jù)提取到單獨(dú)的文件中得封。這是一個(gè)需要重復(fù)加載、刷新和重新啟動(dòng)Redis 服務(wù)器的繁瑣過(guò)程指郁。為了省去您的麻煩忙上,使用腳本會(huì)自動(dòng)執(zhí)行該過(guò)程。它將數(shù)據(jù)加載到作為子進(jìn)程啟動(dòng)的輔助Redis 服務(wù)器中闲坎,并使用該服務(wù)器為每個(gè)邏輯數(shù)據(jù)庫(kù)創(chuàng)建一個(gè) RDB 文件:0.rdb疫粥、1.rdb 等。

聯(lián)系我們腰懂,進(jìn)一步了解邏輯數(shù)據(jù)庫(kù)的遷移梗逮。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绣溜,隨后出現(xiàn)的幾起案子慷彤,更是在濱河造成了極大的恐慌,老刑警劉巖怖喻,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件底哗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡锚沸,警方通過(guò)查閱死者的電腦和手機(jī)跋选,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哗蜈,“玉大人前标,你說(shuō)我怎么就攤上這事【嗯耍” “怎么了炼列?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)绽昼。 經(jīng)常有香客問(wèn)我唯鸭,道長(zhǎng),這世上最難降的妖魔是什么硅确? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮明肮,結(jié)果婚禮上菱农,老公的妹妹穿的比我還像新娘。我一直安慰自己柿估,他們只是感情好循未,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般的妖。 火紅的嫁衣襯著肌膚如雪绣檬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天嫂粟,我揣著相機(jī)與錄音娇未,去河邊找鬼。 笑死星虹,一個(gè)胖子當(dāng)著我的面吹牛零抬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宽涌,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼平夜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了卸亮?” 一聲冷哼從身側(cè)響起忽妒,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兼贸,沒(méi)想到半個(gè)月后锰扶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寝受,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年坷牛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片很澄。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡京闰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出甩苛,到底是詐尸還是另有隱情蹂楣,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布讯蒲,位于F島的核電站痊土,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏墨林。R本人自食惡果不足惜赁酝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旭等。 院中可真熱鬧酌呆,春花似錦、人聲如沸搔耕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至菩收,卻和暖如春梨睁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娜饵。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工坡贺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人划咐。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓拴念,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親褐缠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子政鼠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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