Redis系列(六):設置/移除鍵的過期時間

来源:https://www.cnblogs.com/zwwhnly/archive/2020/05/07/12838809.html
-Advertisement-
Play Games

本篇博客是Redis系列的第6篇,主要講解以下內容: 1. 資料庫數量 2. 切換目標資料庫 3. 設置鍵的過期時間 4. 移除鍵的過期時間 本系列的前5篇可以點擊以下鏈接查看: "Redis系列(一):Redis簡介及環境安裝" "Redis系列(二):Redis的5種數據結構及其常用命令" "R ...


本篇博客是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,如下圖所示:

該數量是由配置文件中的databases選項決定的,預設值為16:

2. 切換目標資料庫

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

set message "Hello,Redis"

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

如果想要切換目標資料庫,可以使用SELECT命令,比如切換到db1,可以執行如下命令:

SELECT 1

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

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

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

  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。

3.2 PTTL

PTTLTTL類似,也是用來查看某個key的剩餘生存時間,但單位為毫秒。

如果key沒有設置過期時間,返回-1。

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

3.3 EXPIRE

EXPIRE命令用來給指定的key設置過期時間,單位為秒。

如果過期時間設置成功,返回1。

如果key不存在,返回0。

3.4 PEXPIRE

PEXPIREEXPIRE類似,也是用來給指定的key設置過期時間,但單位為毫秒。

如果過期時間設置成功,返回1。

如果key不存在,返回0。

3.5 EXPIREAT

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

如果過期時間設置成功,返回1。

如果key不存在,返回0。

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

System.out.println(LocalDateTime.now().plusMinutes(2).toEpochSecond(ZoneOffset.ofHours(8)));

3.6 PEXPIREAT

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

如果過期時間設置成功,返回1。

如果key不存在,返回0。

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

System.out.println(System.currentTimeMillis());

System.out.println(LocalDateTime.now().plusMinutes(2).toInstant(ZoneOffset.ofHours(8)).toEpochMilli());

3.7 PERSIST

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

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

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

4. 源碼及參考

黃健巨集 《Redis設計與實現》

https://redis.io/commands


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第四天MySQL 連接查詢(內連接、外連接、交叉連接)(sql99版本下) 子查詢: select 後面(標量子查詢) from 後面(表子查詢) where 或having後面(標量子查詢、列子查詢、行子查詢) exists後面(相關子查詢)(表子查詢) ...
  • 來源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三種獨立的實現模式匹配的方法:SQL LIKE操作符、更近一些的SIMILAR TO操作符(SQL:1999 里添加進來的)和POSIX-風格的正則表達式。除了這些基本的“這個串匹配這 ...
  • 本篇博客參考掘金小冊—— "MySQL 是怎樣運行的:從根兒上理解 MySQL" 先給大家講一個故事,我剛參加工作,在一個小作坊裡面當【碼畜】(儘管現在也是),有一天老闆從我背後走過,說了一句舉世震驚的話:我看你們的資料庫和excel一樣,不就是一行行數據,人家excel還可以對單元格進行美化,還有 ...
  • 業務情景 客戶環境是系統A的1.0版本,開發環境是系統A的2.0版本。2.0版本對於資料庫有部分變更(主要是新增表和欄位,不涉及欄位刪除和變更)。這個時候需要在客戶環境安裝資料庫2.0(表結構、存儲過程都是用的2.0),但是數據要把1.0的同步過來。 實際操作 1、 表結構複製 右擊2.0版本的數據 ...
  • 來源:http://www.postgres.cn/docs/11/ 6.4. 從修改的行中返回數據 有時在修改行的操作過程中獲取數據很有用。INSERT、 UPDATE和DELETE命令都有一個支持這個的可選的 RETURNING子句。使用RETURNING 可以避免執行額外的資料庫查詢來收集數據 ...
  • skip-name-resolve IP address 'XX.XX.XX.XX' has been resolved to the host name 'XX.XX.XX.XX.ro.ovo.sc', which resembles IPv4-address itself. ...
  • SpringMVC 初始SpringMVC 在 Spring 的基本架構中,紅色圈起來的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是屬於Spring基本架構裡面的一個組成部分,屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面 ...
  • 來源:http://www.postgres.cn/docs/11/ 5.1. 表基礎 SQL並不保證表中行的順序。當一個表被讀取時,表中的行將以非特定順序出現,除非明確地指定需要排序。 嘗試移除一個不存在的表會引起錯誤。然而,在SQL腳本中在創建每個表之前無條件地嘗試移除它的做法是很常見的,即使發 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...