Redis多個資料庫的概念

czxin788發表於2019-03-01

Redis多個資料庫


轉自:https://www.cnblogs.com/EasonJim/p/7818004.html

注意 :Redis支援多個資料庫,並且每個資料庫的資料是隔離的不能共享,並且基於單機才有,如果是叢集就沒有資料庫的概念

Redis是一個字典結構的儲存伺服器,而實際上一個Redis例項提供了多個用來儲存資料的字典, 客戶端可以指定將資料儲存在哪個字典中 。這與我們熟知的在一個關聯式資料庫例項中可以建立多個資料庫類似,所以 可以將其中的每個字典都理解成一個獨立的資料庫

每個資料庫對外都是一個從0開始的遞增數字命名,Redis預設支援16個資料庫 (可以透過配置檔案支援更多,無上限),可以透過配置databases來修改這一數字。客 戶端與Redis建立連線後會自動選擇0號資料庫 ,不過可以隨時使用SELECT命令更換資料庫,如要選擇1號資料庫:

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

然而這些以數字命名的資料庫又與我們理解的資料庫有所區別。首先 Redis不支援自定義資料庫的名字 ,每個資料庫都以編號命名,開發者必須自己記錄哪些資料庫儲存了哪些資料。另外 Redis也不支援為每個資料庫設定不同的訪問密碼 ,所以一個客戶端要麼可以訪問全部資料庫,要麼連一個資料庫也沒有許可權訪問。最重要的一點是多個資料庫之間並不是完全隔離的,比如FLUSHALL命令可以清空一個Redis例項中所有資料庫中的資料。綜上所述, 這些資料庫更像是一種名稱空間,而不適宜儲存不同應用程式的資料 。比如可以使用0號資料庫儲存某個應用生產環境中的資料,使用1號資料庫儲存測試環境中的資料,但不適宜使用0號資料庫儲存A應用的資料而使用1號資料庫B應用的資料, 不同的應用應該使用不同的Redis例項儲存資料 。由於Redis非常輕量級,一個空Redis例項佔用的記憶體只有1M左右,所以不用擔心多個Redis例項會額外佔用很多記憶體。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2637265/,如需轉載,請註明出處,否則將追究法律責任。

相關文章