Redis設置key永不過期

一、Redis設置key永不過期的原因

在實際開發中,有些數據是非常重要的,需要永久存儲,而且不能因為時間的緣故而被自動刪除。Redis設置key永不過期的功能就可以幫我們實現這個需求。

二、Redis設置key永不過期無效

我們可以使用Redis命令:PERSIST key 來將一個帶有過期時間的鍵值對變為永久存在的。但是,有時會遇到有些key即使設置了PERSIST,也無法讓其永久存在的情況。

原因在於,只有當Redis Server的內存比較充足時,Redis才會啟用過期鍵移除機制。當Redis內存告急時,它會根據策略選擇刪除哪些過期的鍵值對以釋放內存。如果key被選中了,那麼即使它有PERSIST標誌,也會被刪除。

三、Redis設置過期時間不生效

在Redis中,可以使用TTL命令來查看某個key的過期時間,使用EXPIRE命令來設置key的過期時間。但是,有些情況下,設置過期時間可能並不會生效。

一個常見的情況是當我們使用SET命令設置一個已經存在的key時,如果我們設置了該key的過期時間,但是該key之前並沒有過期,那麼過期時間設置將不會生效。此時,只有等到該key過期後再重新設置過期時間才會生效。

四、Redis設置key永不過期弊端

雖然設置key永不過期功能很方便,但是也會帶來一些弊端。

  • 佔用過多內存資源,因為這些key永不過期,所以Redis會一直佔用內存。如果數據量過大,內存資源會變得緊張,甚至可能導致Redis Server崩潰。
  • 如果key對應的值隨著時間的推移有更新,但永遠不會被刪除,意味著Redis中很多數據的存儲已經沒有了意義,因為它們已經過時了。這無疑會浪費大量的存儲空間。

五、Redis設置key過期時間

1. EXPIRE命令

EXPIRE命令可以設置一個key的過期時間,單位是秒。例如:

  
    # 設置key為test的過期時間為3600秒(1小時)
    > EXPIRE test 3600
  

2. PEXPIRE命令

PEXPIRE命令和EXPIRE命令類似,但是單位是毫秒。例如:

  
    # 設置key為test的過期時間為3600000毫秒(1小時)
    > PEXPIRE test 3600000
  

3. EXPIREAT命令

EXPIREAT命令可以設置一個key的過期時間點,以UNIX時間戳的形式表示。例如:

  
    # 設置key為test的過期時間為2022年12月31日23時59分59秒
    > EXPIREAT test 1740643199
  

4. PEXPIREAT命令

PEXPIREAT命令和EXPIREAT命令類似,但是單位是毫秒。例如:

  
    # 設置key為test的過期時間為2022年12月31日23時59分59秒999毫秒
    > PEXPIREAT test 1740643199999
  

5. PERSIST命令

PERSIST命令可以使一個帶有過期時間的key變成永久存在的。例如:

  
    # 將key為test的過期時間取消,以便讓它永久存在
    > PERSIST test
  

六、Redis設置key永不過期作用

Redis設置key永不過期功能是非常方便的,對於一些重要數據的存儲非常有用。它可以實現數據的永久保存,避免數據被誤刪除或誤覆蓋。

比如,我們可以將系統的一些配置信息、用戶的登錄狀態等永久保存在Redis中,當我們需要使用這些數據時,可以直接從Redis中讀取,而無需頻繁的從資料庫讀取。

七、Redis設置key永不過期設置 -1

除了使用PERSIST命令使key永不過期外,我們還可以將key的過期時間設置為-1,表示該key永不過期。例如:

  
    # 設置key為test永不過期
    > EXPIRE test -1
  

八、Redis設置key永久有效

為了使key永久有效,我們可以使用PEXPIREAT命令,將過期時間點設置為未來極遠的時間。例如:

  
    # 設置key為test永不過期
    > PEXPIREAT test 99999999999999
  

九、Redis設置過期時間的命令選取

在日常使用中,我們使用最多的命令是EXPIRE和PEXPIRE。如果需要將過期時間點設置為未來的某個時間,可以使用EXPIREAT和PEXPIREAT命令;如果需要將key變成永久存在的,可以使用PERSIST命令。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200278.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 14:04
下一篇 2024-12-05 14:04

相關推薦

  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • Python字典輸出key對應的value

    本文將從多個方面詳細闡述Python字典輸出key對應的value,包括獲取單個和多個key的value值、如何判斷一個key是否存在、如何遍歷所有的key-value對和如何刪除…

    編程 2025-04-28
  • 在CentOS上安裝Redis

    Redis是一款非關係型資料庫,它支持多種數據結構,包括字元串、哈希、列表、集合、有序集合等。Redis運行內存內並且支持數據持久化,它還可以應用於緩存、消息隊列等場景。本文將介紹…

    編程 2025-04-28
  • 解析spring.redis.cluster.max-redirects參數

    本文將圍繞spring.redis.cluster.max-redirects參數進行詳細闡述,從多個方面解讀它的意義與作用,並給出相應的代碼示例。 一、基礎概念 在介紹sprin…

    編程 2025-04-27
  • Redis Bitmap用法介紹

    Redis是一款高性能的內存資料庫,支持多種數據類型,其中之一便是bitmap。Redis bitmap(點陣圖)是一種用二進位位來表示元素是否在集合中的數據結構。由於使用了二進位位…

    編程 2025-04-27
  • etcd查看key value

    etcd是一個高可用的鍵值存儲組件,它為分散式系統提供了一個可靠的方式來存儲數據。本篇文章將介紹如何通過etcd查看key value,包括使用etcdctl命令行工具和Go語言的…

    編程 2025-04-27
  • 使用yum安裝redis

    一、什麼是redis? Redis是一種開源的基於key-value存儲的NoSQL資料庫,它支持多種數據結構的存儲,例如字元串、哈希、列表、集合以及有序集合等。同時,Redis還…

    編程 2025-04-25
  • Vue 往數組添加字母key

    本文將詳細闡述如何在 Vue 中往數組中添加字母 key,並從多個方面探討實現方法。 一、Vue 中添加字母 key 的實現方法 在 Vue 中,添加 key 可以使用 v-bin…

    編程 2025-04-25
  • Linux Redis 重啟

    一、概述 Redis 是一款高性能的 NoSQL 資料庫,常用於各種應用場景的數據緩存、消息隊列、實時數據分析等等。在使用 Redis 過程中,如果出現了某些問題,有時候只需要重啟…

    編程 2025-04-25
  • Ubuntu安裝Redis指南

    一、安裝步驟 1、查看Ubuntu是否已安裝Redis,如果已安裝,則卸載Redis。 sudo apt-get remove redis-server 2、安裝Redis——命令…

    編程 2025-04-25

發表回復

登錄後才能評論