Redis:05---鍵的基本命令(下) 生存周期

一、設置鍵生存/過期時間

  • 生存時間(Time To Live,TTL):在經過指定的秒數或者毫秒數之后,服務器就會自動刪除生存時間為0的鍵

  • 過期時間(expire time):是一個UNIX時間戳,當鍵的過期時間來臨時,服務器就會自動從數據庫中刪除這個鍵

設置生存時間

  • EXPIRE <key> <ttl>:用于將鍵key的生存時間設置為ttl秒

  • PEXPIRE <key> <ttl>:用于將鍵key的生存時間設置為ttl毫秒

設置過期時間

  • EXPIREAT <key> <timestamp>:用于將鍵key的過期時間設置為timestamp所指定的秒數時間戳

  • PEXPIREAT <key> <timestamp>:用于將鍵key的過期時間設置為timestamp所指定的毫秒數時間戳

  • EXPIRE、PEXPIRE、EXPIREAT這幾個命令的內部最終使用的都是PEXPIREAT

注意事項

  • ①如果expire的鍵不存在,則命令返回0。例如:

  • ②如果將過期時間設置為負值,那么該鍵會被立即刪除。例如:

  • ③Redis不支持二級數據結構(例如哈希、列表)內部元素的過期功能,例如可以對列表的key做過期時間,但不能對列表類型的一個元素(value)設置過期時間。例如,下面有一個my_list列表,其含有元素“hello、world、redis”

字符串類型鍵的注意事項

  • 對于字符串類型鍵的注意事項,執行SET命令會去掉過期時間

  • 在Redis源碼中,SET命令的函數setKey()最后執行了removeExpire(db, key)函數去掉了過期時間。

  • 演示案例:

二、查詢鍵的剩余生存時間

  • TTL命令以秒為單位返回鍵的剩余生存時間

  • PTTL命令則以毫秒為單位返回鍵的剩余生存時間

  • 命令返回值:

    • 鍵未過期:ttl返回鍵的剩余秒數,pttl返回鍵的剩余毫秒數

    • 鍵沒有設置過期時間:返回-1

    • 鍵不存在:返回-2

演示案例

三、移除過期時間

  • PERSIST命令可以移除一個鍵的過期時間

演示案例

四、附加SETEX命令

  • SETEX命令可以在設置一個字符串鍵的同時為鍵設置過期時間,其實set+expire的組合,是一個原子操作,并且減少了一次網絡通訊的時間

  • 格式如下:

SETEX key seconds value

演示案例

  • 下面設置一個鍵名為hello,其過期時間為50秒,鍵值為world

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444505.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數論基礎代碼合集

歐幾里德 #include<iostream> using namespace std; int hcf(int a,int b) {int r0;while(b!0){ra%b;ab;br;}return(a); } lcd(int u,int v,int h) //ua&#xff0c;vb&#xff0c;h為最小公約數hcf(a,b); {return(u*v/h); } int main() {int a,b,x,y;cin>>…

C++:03---引用類型

一、概念 C++中的一種新的變量類型,作用是為變量取別名二、引用規則 引用被創建時必須被初始化(即必須指向一個對象,因此引用一旦被初始化,就不能再指向其他對象)int a = 10; int &p = a; //正確 int &p2; //錯誤,引用必須初始化引用的數據類型必須與被引用的…

三個博弈基礎

&#xff08;一&#xff09;巴什博奕&#xff08;Bash Game&#xff09;&#xff1a;只有一堆n個物品&#xff0c;兩個人輪流從這堆物品中取物&#xff0c;規定每次至少取一個&#xff0c;最多取m個。最后取光者得勝。 顯然&#xff0c;如果nm1&#xff0c;那么由于一次最…

(十五)nodejs循序漸進-高性能游戲服務器框架pomelo之Protobuf模塊

消息壓縮 在實際編程中&#xff0c;為了減少數據傳輸帶寬的消耗&#xff0c;提高傳輸效率&#xff0c;pomelo提供了對消息的壓縮&#xff0c;包括基于字典的對route的壓縮和基于protobuf的對具體傳輸數據的壓縮。 route壓縮 在實際編程中&#xff0c;網絡帶寬的有效數據負載…

C++:13---多態和虛函數表

多態的意思為“以一個public基類的指針/引用,尋址一個派生類對象”。 “多態”的關鍵在于通過基類指針或引用調用一個虛函數時,編譯時不確定到底調用的是基類還是派生類的函數,運行時才確定。這是如何實現的呢?請看下面的程序,該程序演示了多態類對象存儲空間的大小。 #in…

leetcode96. 不同的二叉搜索樹 動歸vs數學?

給定一個整數 n&#xff0c;求以 1 ... n 為節點組成的二叉搜索樹有多少種&#xff1f; 示例: 輸入: 3 輸出: 5 解釋: 給定 n 3, 一共有 5 種不同結構的二叉搜索樹: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 …

Redis:06---數據庫管理

一、服務器中的數據庫Redis服務器將所有數據庫都保存在服務器狀態redis.h/redisServer結構的db數組中&#xff0c;db數組的每個項都是一個redis.h/redisDb結構&#xff0c;每個redisDb結構代表一個數據庫&#xff1a;struct redisServer {// ...redisDb *db; // 一個數組&#…

leetcode95. 不同的二叉搜索樹 II

給定一個整數 n&#xff0c;生成所有由 1 ... n 為節點所組成的二叉搜索樹。 示例: 輸入: 3 輸出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解釋: 以上的輸出對應以下 5 種不同結構的二叉搜索樹&#xff1a; 1 3 …

在同一局域網下連接共享文件夾失敗,提示:你不能訪問共享文件夾,因為你組織的安全策略阻止未經身份驗證的來賓訪問

1.嘗試打開guest訪問。 &#xff08;1&#xff09;使用鍵盤 win R 鍵&#xff0c;打開運行窗口&#xff0c;并輸入 gpedit.msc 打開本地組策略編輯器窗口 &#xff08;2&#xff09;選擇計算機配置------->管理模板-------->網絡-------->Lanman工作站。 &#…

(十五)深入淺出TCPIP之Hello CDN

什么是CDNCDN 其實是 Content Delivery Network 的縮寫&#xff0c;即“內容分發網絡”。CDN是將媒體資源&#xff0c;動靜態圖片(Flash) &#xff0c;HTML, CSS, JS等等內容緩存到距離你更近的互聯網數據中心&#xff0c;從而讓用戶進行共享資源&#xff0c;實現縮減站點間的響…

Redis:07---Redis數據結構

一、五大數據結構Redis可以存儲鍵與5種不同數據結構類型之間的映射&#xff0c;這5種數據結構類型分別為&#xff1a;STRING&#xff1a;字符串LIST&#xff1a;列表SET&#xff1a;集合HASH&#xff1a;散列ZSET&#xff1a;有序集合TYPE命令用來獲得鍵的數據類型&#xff0c;…

C++:14---虛繼承,虛函數,多態

一、多級混合繼承 下面先介紹菱形繼承 //菱形繼承 class A { public: int data; }; class B:public A { public: int data; }; class C:public A { public: int data; }; class D:public B,public C { public: int data; };int main() { D c; D.data=1; D.B::data=2;//訪問B中的…

(十四)nodejs循序漸進-高性能游戲服務器框架pomelo之開發Treasures游戲

#Tutorial 2 -- Treasures ##描述 Treasures 游戲是從 LordOfPomelo 中抽取出來&#xff0c;去掉了大量的游戲邏輯&#xff0c;用以更好的展示 Pomelo 框架的用法以及運作機制。 Treasures 很簡單&#xff0c;輸入一個用戶名后&#xff0c;會隨機得到一個游戲角色&#xff0c;…

leetcode243. 最短單詞距離(vip題)好像挺簡單?

給定一個單詞列表和兩個單詞 word1 和 word2&#xff0c;返回列表中這兩個單詞之間的最短距離。 示例: 假設 words ["practice", "makes", "perfect", "coding", "makes"] 輸入: word1 “coding”, word2 “practice”…

談談蘋果應用內支付(IAP)的坑

一、請求商品 下面是請求商品的代碼: - (void)validateProductIdentifier:(NSArray *)productIdentifier {SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifier]];self.request = productRe…

leetcode204. 計數質數(vip題)

統計所有小于非負整數 n 的質數的數量。 示例: 輸入: 10 輸出: 4 解釋: 小于 10 的質數一共有 4 個, 它們是 2, 3, 5, 7 。 思路&#xff1a;篩法&#xff0c;見代碼。 class Solution {public int countPrimes(int n) {// 1. 給數加上標記byte[] nums new byte[n];for (i…

如何使得客戶端和服務器端完美配合做IOS應用內付費

配置Developer.apple.com 登錄到Developer.apple.com,然后進行以下步驟: 為應用建立建立一個不帶通配符的App ID用該App ID生成和安裝相應的Provisioning Profile文件。配置iTunes Connect 登錄到iTunes Connet,然后進行以下步驟: 用該App ID創建一個新的應用。在該應用中…

IOS內購流程從0-1手把手教會

蘋果掌握著可能是全球最重要的APP分發渠道,然而30%的抽成近年來也被人批評,現在蘋果似乎也看到反對意見了,從2021年1月1日開始,部分小型企業的分成費用降低到15%。 據報道,蘋果將于2021年1月1日啟動App Store小企業項目,會降低他們的抽成費用。針對年收入不足100萬美元的…

leetcode217. 存在重復元素(vip題)超簡單

給定一個整數數組&#xff0c;判斷是否存在重復元素。 如果任何值在數組中出現至少兩次&#xff0c;函數返回 true。如果數組中每個元素都不相同&#xff0c;則返回 false。 示例 1: 輸入: [1,2,3,1] 輸出: true 示例 2: 輸入: [1,2,3,4] 輸出: false 示例 3: 輸入: [1,1,…

訂單數據持久化和驗證相關解決方案

訂單數據持久化 有時候蘋果支付在支付完成后,從蘋果服務器返回收據的過程中可能會掉單(可能是網絡問題,可能是蘋果BUG,也有一部分是開發者自身埋的坑),因此我們需要一個訂單持久化的機制來保障。 首先根據內購商品ID(此商品ID是在蘋果后臺建好的內購商品)、用戶信息(…