溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

為什么redis支持多個(gè)數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2020-07-03 10:47:11 來(lái)源:億速云 閱讀:343 作者:Leah 欄目:關(guān)系型數(shù)據(jù)庫(kù)

為什么redis支持多個(gè)數(shù)據(jù)庫(kù)?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

注意:Redis支持多個(gè)數(shù)據(jù)庫(kù),并且每個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)是隔離的不能共享,并且基于單機(jī)才有,如果是集群就沒(méi)有數(shù)據(jù)庫(kù)的概念。

redis之所以分這么多個(gè)數(shù)據(jù)庫(kù),也是為了區(qū)分業(yè)務(wù),不同的業(yè)務(wù)存放在不同的庫(kù),但是一個(gè)redis,一般是給一個(gè)項(xiàng)目用,項(xiàng)目?jī)?nèi)的不同業(yè)務(wù),單獨(dú)用一個(gè)庫(kù),這樣不會(huì)相互有數(shù)據(jù)交叉。

Redis是一個(gè)字典結(jié)構(gòu)的存儲(chǔ)服務(wù)器,而實(shí)際上一個(gè)Redis實(shí)例提供了多個(gè)用來(lái)存儲(chǔ)數(shù)據(jù)的字典,客戶端可以指定將數(shù)據(jù)存儲(chǔ)在哪個(gè)字典中。這與我們熟知的在一個(gè)關(guān)系數(shù)據(jù)庫(kù)實(shí)例中可以創(chuàng)建多個(gè)數(shù)據(jù)庫(kù)類似,所以可以將其中的每個(gè)字典都理解成一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)。

每個(gè)數(shù)據(jù)庫(kù)對(duì)外都是一個(gè)從0開(kāi)始的遞增數(shù)字命名,Redis默認(rèn)支持16個(gè)數(shù)據(jù)庫(kù)(可以通過(guò)配置文件支持更多,無(wú)上限),可以通過(guò)配置databases來(lái)修改這一數(shù)字??蛻舳伺cRedis建立連接后會(huì)自動(dòng)選擇0號(hào)數(shù)據(jù)庫(kù),不過(guò)可以隨時(shí)使用SELECT命令更換數(shù)據(jù)庫(kù),如要選擇1號(hào)數(shù)據(jù)庫(kù):

redis> SELECT 1
OK
redis [1] > GET foo
(nil)

然而這些以數(shù)字命名的數(shù)據(jù)庫(kù)又與我們理解的數(shù)據(jù)庫(kù)有所區(qū)別。

首先Redis不支持自定義數(shù)據(jù)庫(kù)的名字,每個(gè)數(shù)據(jù)庫(kù)都以編號(hào)命名,開(kāi)發(fā)者必須自己記錄哪些數(shù)據(jù)庫(kù)存儲(chǔ)了哪些數(shù)據(jù)。

另外Redis也不支持為每個(gè)數(shù)據(jù)庫(kù)設(shè)置不同的訪問(wèn)密碼,所以一個(gè)客戶端要么可以訪問(wèn)全部數(shù)據(jù)庫(kù),要么連一個(gè)數(shù)據(jù)庫(kù)也沒(méi)有權(quán)限訪問(wèn)。

最重要的一點(diǎn)是多個(gè)數(shù)據(jù)庫(kù)之間并不是完全隔離的,比如FLUSHALL命令可以清空一個(gè)Redis實(shí)例中所有數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

綜上所述,這些數(shù)據(jù)庫(kù)更像是一種命名空間,而不適宜存儲(chǔ)不同應(yīng)用程序的數(shù)據(jù)。比如可以使用0號(hào)數(shù)據(jù)庫(kù)存儲(chǔ)某個(gè)應(yīng)用生產(chǎn)環(huán)境中的數(shù)據(jù),使用1號(hào)數(shù)據(jù)庫(kù)存儲(chǔ)測(cè)試環(huán)境中的數(shù)據(jù),但不適宜使用0號(hào)數(shù)據(jù)庫(kù)存儲(chǔ)A應(yīng)用的數(shù)據(jù)而使用1號(hào)數(shù)據(jù)庫(kù)B應(yīng)用的數(shù)據(jù),不同的應(yīng)用應(yīng)該使用不同的Redis實(shí)例存儲(chǔ)數(shù)據(jù)。

由于Redis非常輕量級(jí),一個(gè)空Redis實(shí)例占用的內(nèi)在只有1M左右,所以不用擔(dān)心多個(gè)Redis實(shí)例會(huì)額外占用很多內(nèi)存。

關(guān)于為什么redis支持多個(gè)數(shù)據(jù)庫(kù)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI