天天看點

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

本篇部落格是Redis系列的第6篇,主要講解以下内容:

  1. 資料庫數量
  2. 切換目标資料庫
  3. 設定鍵的過期時間
  4. 移除鍵的過期時間

本系列的前5篇可以點選以下連結檢視:

Redis系列(一):Redis簡介及環境安裝

Redis系列(二):Redis的5種資料結構及其常用指令

Redis系列(三):Redis的持久化機制(RDB、AOF)

Redis系列(四):Redis的複制機制(主從複制)

Redis系列(五):Redis的過期鍵删除政策

1. 資料庫數量

預設情況下,Redis伺服器有16個資料庫,分别為db0~db15,如下圖所示:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

該數量是由配置檔案中的

databases

選項決定的,預設值為16:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

2. 切換目标資料庫

預設情況下,我們執行的指令的目标資料庫是db0,比如我們執行如下指令:

這個鍵值對會儲存在資料庫db0裡,如下圖所示:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

如果想要切換目标資料庫,可以使用

SELECT

指令,比如切換到db1,可以執行如下指令:

然後執行如下圖所示的指令:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

此時該鍵值對會儲存在db1裡,如下圖所示:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

在實際使用時,建議遵循以下規範:

  1. 各個應用使用不同的目标資料庫
  2. 1個應用盡量不要操作多個目标資料庫

3. 設定/移除鍵的過期時間

Redis提供了7個和key的過期時間相關的指令,分别如下所示:

  1. TTL
  2. PTTL
  3. EXPIRE
  4. PEXPIRE
  5. EXPIREAT
  6. PEXPIREAT
  7. PERSIST

接下來詳細講解每個指令的使用方法。

3.1 TTL

TTL

是Time To Live的縮寫,用來檢視某個key的剩餘生存時間,機關為秒。

如果key沒有設定過期時間,傳回-1。

如果key不存在,傳回-2。

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間
@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.2 PTTL

PTTL

TTL

類似,也是用來檢視某個key的剩餘生存時間,但機關為毫秒。

如果key沒有設定過期時間,傳回-1。

如果key不存在,傳回-2。

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.3 EXPIRE

EXPIRE

指令用來給指定的key設定過期時間,機關為秒。

如果過期時間設定成功,傳回1。

如果key不存在,傳回0。

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.4 PEXPIRE

PEXPIRE

EXPIRE

類似,也是用來給指定的key設定過期時間,但機關為毫秒。

如果過期時間設定成功,傳回1。

如果key不存在,傳回0。

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.5 EXPIREAT

EXPIREAT

指令用來給指定的key設定過期時間,但指定的是某個時間點秒數的UNIX時間戳。

如果過期時間設定成功,傳回1。

如果key不存在,傳回0。

可以使用如下Java代碼擷取秒數的時間戳:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.6 PEXPIREAT

PEXPIREAT

EXPIREAT

類似,用來給指定的key設定過期時間,但指定的是點毫秒數的UNIX時間戳。

如果過期時間設定成功,傳回1。

如果key不存在,傳回0。

可以使用如下Java代碼擷取毫秒數的時間戳:

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

3.7 PERSIST

PERSIST

指令用來移除指定key的過期時間。

如果過期時間移除成功,傳回1。

如果key不存在或者key沒有設定過期時間,傳回0。

@cacheable 設定過期時間_Redis系列(六):設定/移除鍵的過期時間

繼續閱讀