注意:Redis支持多個數據庫,而且每一個數據庫的數據是隔離的不能共享,而且基於單機纔有,若是是集羣就沒有數據庫的概念。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實例會額外佔用不少內存。測試
參考:spa
http://www.ttlsa.com/redis/redis-database/.net
http://blog.csdn.net/qian_348840260/article/details/25056397(以上內容轉自此篇文章)code