本篇部落格是Redis系列的第6篇,主要講解以下内容:
- 資料庫數量
- 切換目标資料庫
- 設定鍵的過期時間
- 移除鍵的過期時間
本系列的前5篇可以點選以下連結檢視:
Redis系列(一):Redis簡介及環境安裝
Redis系列(二):Redis的5種資料結構及其常用指令
Redis系列(三):Redis的持久化機制(RDB、AOF)
Redis系列(四):Redis的複制機制(主從複制)
Redis系列(五):Redis的過期鍵删除政策
1. 資料庫數量
預設情況下,Redis伺服器有16個資料庫,分别為db0~db15,如下圖所示:

該數量是由配置檔案中的
databases
選項決定的,預設值為16:
2. 切換目标資料庫
預設情況下,我們執行的指令的目标資料庫是db0,比如我們執行如下指令:
這個鍵值對會儲存在資料庫db0裡,如下圖所示:
如果想要切換目标資料庫,可以使用
SELECT
指令,比如切換到db1,可以執行如下指令:
然後執行如下圖所示的指令:
此時該鍵值對會儲存在db1裡,如下圖所示:
在實際使用時,建議遵循以下規範:
- 各個應用使用不同的目标資料庫
- 1個應用盡量不要操作多個目标資料庫
3. 設定/移除鍵的過期時間
Redis提供了7個和key的過期時間相關的指令,分别如下所示:
- TTL
- PTTL
- EXPIRE
- PEXPIRE
- EXPIREAT
- PEXPIREAT
- PERSIST
接下來詳細講解每個指令的使用方法。
3.1 TTL
TTL
是Time To Live的縮寫,用來檢視某個key的剩餘生存時間,機關為秒。
如果key沒有設定過期時間,傳回-1。
如果key不存在,傳回-2。
3.2 PTTL
PTTL
和
TTL
類似,也是用來檢視某個key的剩餘生存時間,但機關為毫秒。
如果key沒有設定過期時間,傳回-1。
如果key不存在,傳回-2。
3.3 EXPIRE
EXPIRE
指令用來給指定的key設定過期時間,機關為秒。
如果過期時間設定成功,傳回1。
如果key不存在,傳回0。
3.4 PEXPIRE
PEXPIRE
與
EXPIRE
類似,也是用來給指定的key設定過期時間,但機關為毫秒。
如果過期時間設定成功,傳回1。
如果key不存在,傳回0。
3.5 EXPIREAT
EXPIREAT
指令用來給指定的key設定過期時間,但指定的是某個時間點秒數的UNIX時間戳。
如果過期時間設定成功,傳回1。
如果key不存在,傳回0。
可以使用如下Java代碼擷取秒數的時間戳:
3.6 PEXPIREAT
PEXPIREAT
與
EXPIREAT
類似,用來給指定的key設定過期時間,但指定的是點毫秒數的UNIX時間戳。
如果過期時間設定成功,傳回1。
如果key不存在,傳回0。
可以使用如下Java代碼擷取毫秒數的時間戳:
3.7 PERSIST
PERSIST
指令用來移除指定key的過期時間。
如果過期時間移除成功,傳回1。
如果key不存在或者key沒有設定過期時間,傳回0。