標籤:顯示 切換 雜湊 pex pre 字元 sel 就是 at命令
1. 伺服器中資料庫結構
Redis 伺服器將所有資料庫都儲存在伺服器狀態 redisServer 結構的 db 數組中,由 redisDb 結構代表一個資料庫
struct redisServer { // ... // 一個數組,儲存著伺服器中的所有資料庫 redisDb *db; }
Redis 伺服器預設會建立16個資料庫,預設情況下,Redis用戶端的目標資料庫是0號資料庫。
2. 切換資料庫
SELECT 命令用來切換資料庫
redis> SELECT 2 OK redis[2]> //切換到了2號資料庫
注意:
在執行Redis命令,特別是像FLUSHDB這樣的危險命令之前,最好先執行一個SELECT命令,顯示的切換到指定的資料庫,然後在執行別的命名。
3. 資料庫鍵空間
Redis是一個索引值對資料庫伺服器,伺服器中的每個資料庫都由一個redisDb結構表示。其中,redisDb結構的dict字典儲存了資料庫中所有索引值對,我們將這個字典稱為鍵空間。
typedef struct redisDb { // ... // 資料庫鍵空間,儲存著資料庫中所有的索引值對 dict *dict; }
- 鍵空間的鍵也就是資料庫的鍵,每個鍵都是一個字串對象
- 鍵空間的值也就是資料庫的值,每個值可以是字串對象、列表對象、雜湊表對象、集合對象和有序集合對象中的任意一種Redis對象。
4. 鍵到期4.1 設定鍵到期命令
Redis有四個不同的命令用於設定鍵的存留時間或者到期時間
- EXPIRE <key>
- PEXPIRE
- EXPIREAT
- PEXPIREAT
EXPIRE、PEXPIRE、EXPIREAT 三個命令都是調用PEXPIREAT命令來實現的。
4.2 移除鍵到期命令
- PERSIST命令用於移除鍵key的到期時間
用法:PERSIST
redis>EXPIRE msg 1000 // 設定鍵msg1000秒後到期 1 redis>TTL msg 996 redis>PERSIST msg 1 redis>TTL msg -1 // 傳回值為-1,說明msg沒有設定到期時間
4.3 計算並返回剩餘存留時間
- TTL命令以秒為單位返回鍵的剩餘存留時間
- PTTL命令以毫秒為單位返回鍵的剩餘存留時間
《Redis設計與實現》- 資料庫