?關于Redis的知識前面已經介紹過很多了,但有個點沒有講,那就是一個Redis的實例并不是只有一個數據庫,一般情況下,默認是Databases 0。
一 內部結構
設計如下:
Redis 的源碼中定義了 redisDb 結構體來表示單個數據庫。這個結構有若干重要字段,比如:
dict:該字段存儲了數據庫中所有鍵值對,它是一個字典數據結構。
expires:該字段也是一個字典,用于保存所有帶有過期時間的鍵。
二 數據庫個數配置以及使用
當啟動 Redis 服務時,根據配置(默認或用戶指定),系統會初始化一個 redisDb 數組,數組的大小就是配置文件中指定的數據庫數量,默認為 16。啟動Redis之前,可以通過修改配置文件redis.conf來改變這16個默認數據庫的個數。
通過發送 SELECT 命令加上數據庫索引號以切換當前數據庫。例如,發送 SELECT 0 將使用第一個數據庫(索引從 0 開始),而發送 SELECT 15 則使用最后一個數據庫。
需要強調一點的是:
雖然可以創建多個數據庫,但所有這些數據庫都是彼此獨立的,并且數據庫之間的數據是完全隔離的。每個數據庫內部維護自己的鍵空間,一個鍵名在不同的數據庫中可