Redis key鍵

Redis 是一種鍵值(key-value)型的緩存型數據庫,它將數據全部以鍵值對的形式存儲在內存中,并且 key 與 value 一一對應。這里的 key 被形象的稱之為密鑰,Redis 提供了諸多操作這把“密鑰”的命令,從而實現了對存儲數據的管理。

可以把 key 看成 value 的變量,通過檢索 key 就可以找到對應的 value 值:

  • key 的類型
  • key 的命名規范
  • key 的過期時間

了解key的特點

1) key的類型

key 的類型對應著 value 的類型,同樣也有五種(string、list、hash、set、zset)。如果 key 指向的是一個字符串類型的值,那么 key 的類型就是字符串。我們可以通過TYPE命令來查看 key 的類型,示例如下

# 字符串
redis> SET weather "sunny"
OK
redis> TYPE weather
string# 列表
redis> LPUSH book_list "programming in scala"
(integer) 1
redis> TYPE book_list
list# 集合
redis> SADD pat "dog"
(integer) 1
redis> TYPE pat
set
2) key的命名規范

key 的命名需要遵循以下規則:

  • key 取值不可以太長,否則會影響 value 的查找效率,并且浪費內存空間。
  • key 取值也不能過短,否則會使得 key 可讀性變差。
3) key過期時間

Redis 允許你為 key 設置一個過期時間(使用 EXPIRE 等命令),也就是“到點自動刪除”,這在實際業務中是非常有用的,一是它可以避免使用頻率不高的 key 長期存在,從而占用內存資源;二是控制緩存的失效時間。

Redis 會把每個設置了過期時間的 key 存放到一個獨立的字典中,并且會定時遍歷這個字典來刪除到期的 key。除了定時遍歷之外,它還會使用“惰性策略”來刪除過期的 key。所謂“惰性策略”指的是當客戶端訪問這個 key 的時候,Redis 對 key 的過期時間進行檢查,如果過期了就立即刪除。Redis 使用兩種方式相結合的方法來處理過去的 key。?

過期時間,有許多的應用場景,比如購物 App 會在特定的時間節點推出相關的活動,比如雙十一、雙十二、618購物節等,這些活動都是一年一度如期開辦,因此當下一期舉行時,上一期的活動的數據就沒有意義了,在這種情景下就可以給 key 設置一個過期時間,從而減少無用數據占用內存資源。?

Redis key命令格式

和 key 相關的命令,它的語法格式如下所示:?

?redis?127.0.0.1:6379>?COMMAND?KEY_NAME

  • COMMAND:表示 key 的命令;
  • KEY_NAME:表示 key 的名字。

示例:?DEL代表刪除命令,而?cc 是鍵。如果成功刪除了鍵,則將的返回整數 1,否則將返回整數 0。如下:

redis 127.0.0.1:6379> SET cc "你好"
OK
#刪除key
redis 127.0.0.1:6379> DEL  cc
(integer) 1
#若鍵不存在刪除失敗
redis 127.0.0.1:6379> DEL age
(integer) 0

Redis鍵命令匯總

下表對常用的 Redis 鍵命令做了簡單的總結:

Redis 鍵命令
命令說明
DEL key若鍵存在的情況下,該命令用于刪除鍵。
DUMP?key用于序列化給定 key ,并返回被序列化的值。
EXISTS?key用于檢查鍵是否存在,若存在則返回 1,否則返回 0。
EXPIRE?key設置 key 的過期時間,以秒為單位。
EXPIREAT?key該命令與 EXPIRE 相似,用于為 key 設置過期時間,不同在于,它的時間參數值采用的是時間戳格式。
PEXPIRE?key設置 key 的過期,以毫秒為單位。
PEXPIREAT key與?PEXPIRE?相似,用于為 key 設置過期時間,采用以毫秒為單位的時間戳格式。
KEYS?pattern此命令用于查找與指定?pattern 匹配的 key。
MOVE?key?db將當前數據庫中的 key 移動至指定的數據庫中(默認存儲為 0 庫,可選 1-15中的任意庫)。
PERSIST?key該命令用于刪除 key 的過期時間,然后 key 將一直存在,不會過期。
PTTL?key用于檢查 key 還剩多長時間過期,以毫秒為單位。
TTL?key用于檢查 key 還剩多長時間過期,以秒為單位。
RANDOMKEY從當前數據庫中隨機返回一個 key。
RENAME?key?newkey修改 key 的名稱。
RENAMENX key newkey如果新鍵名不重復,則將 key 修改為 newkey。
SCAN?cursor基于游標的迭代器,用于迭代數據庫中存在的所有鍵,cursor 指的是迭代游標。
TYPE?key該命令用于獲取 value 的數據類型。

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

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

相關文章

財報解讀:電商GMV增長30%后,快手將堅守本地生活?

快手逐漸講好了其高質量成長的故事。 根據財報,快手三季度業績超出預期,其中,營收279.5億元,同比增長20.8%;調整后凈利潤31.7億元,同比扭虧為盈。 而聯系市場環境來看,三季度廣告、電商市場較…

超詳細的pytest玩轉HTML報告:修改、漢化和優化

前言 Pytest框架可以使用兩種測試報告,其中一種就是使用pytest-html插件生成的測試報告,但是報告中有一些信息沒有什么用途或者顯示的不太好看,還有一些我們想要在報告中展示的信息卻沒有,最近又有人問我pytest-html生成的報告&a…

javascript Math相關計算取值屬性方法

*向上取整【只要有小數就+1】 Math.ceil(3.14); // 4 *向下取整【有小數就舍棄】 Math.floor(3.14); // 3 parseInt(3.14); // 3 // 常用于字符串類型的數字轉為十進制的數據 四舍五入【小數點后部分】 Math.round(11.5)); //12 Math.round(-11.5)); //-11 取兩數…

6-使用nacos作為注冊中心

本文講解項目中集成nacos,并將nacos作為注冊中心使用的過程。本文不涉及nacos的原理。 1、項目簡介 以一個演示項目為例,項目包含三個服務,調用及依賴如下圖: 由圖中可以看出,coupon-customer-serv為服務的消費者&a…

基于element自動表格

需求是根據JSON文件生成表格,包含配置和自動props屬性以及過濾器; 數據示例: 表格設置: /*** 表格表頭信息* chineseToPinYin: 這是封裝的根據中文漢字轉換為拼音的方法* prop: 表頭字段名* filter: 數據過濾器* label: 表頭顯示…

最長連續序列【中等】

leetcode鏈接 給定一個未排序的整數數組 nums ,找出數字連續的最長序列(不要求序列元素在原數組中連續)的長度。 請你設計并實現時間復雜度為 O(n) 的算法解決此問題。 示例 1:輸入:nums [100,4,200,1,3,2] 輸出&am…

『new Date 在 IOS 失效 の bug』

問題:new Date()在安卓下正常,在IOS下顯示不出來。 原因:在IOS下,new Date(“2000-2-22 00:10”),返回的是undefined,因為IOS不支持這種類型格式。 解決:更換下格式:new Date(“2000/2/22”) …

類初始化,類加載,類加載器

類初始化,類加載,類加載器 1. 類加載1.1. 類的加載1.2. 類的鏈接1.2.1. 驗證1.2.2. 準備1.2.3. 解析 2. 類加載器2.1. 類加載器分為四種:前三種為虛擬機自帶的加載器。2.2. 類加載有三種方式:2.3. **JVM類加載機制**2.4. 雙親委派…

GeoTrust通配符證書:保護您的網站安全

GeoTrust通配符 SSL證書是一種特殊的 SSL 證書類型,它可以同時為您的主域名及其所有子域提供安全保護。無論您有多少個不同的子域需要保障,都可以通過單一的 GeoTrust 通配符 SSL 證書輕松實現,極大地簡化了管理流程并降低了成本。 此外&…

1688商品詳情數據接口(1688.item_get)

1688商品詳情數據接口是一種程序化的接口,通過這個接口,商家或開發者可以使用自己的編程技能,對1688平臺上的商品信息進行查詢、獲取和更新。這個接口允許商家根據自身的需求,獲取商品的詳細信息,例如價格、庫存、描述…

JUC(Java Util Concurrent)多線程并發庫

JUC(Java Util Concurrent)是Java中用于編寫多線程并發程序的庫。開發過程中使用JUC主要有以下幾個好處: 1. 提高程序性能:使用JUC可以實現多線程并發執行,充分利用多核CPU,提高程序的性能。 2. 簡化代碼…

群暉NAS搭建WebDav服務做文件共享,可隨時隨地遠程訪問

文章目錄 1. 在群暉套件中心安裝WebDav Server套件1.1 安裝完成后,啟動webdav服務,并勾選HTTP復選框 2. 局域網測試WebDav服務2.1 下載RaiDrive客戶端2.2 打開RaiDrive,設置界面語言可以選擇中文2.3 點擊添加按鈕,新建虛擬驅動區2…

從事軟件測試8年,對業務測試人員的一些思考

自從事測試工作八年多以來,經歷過三個部門多條業務線,也經歷過測試轉型再回到測試,在此過程中對測試工作和角色的認知也逐步有些思考,想把這些思考分享給大家,希望為業務測試同學提供一些有價值的思路。 同時&#xff…

YOLOV7主干改進,使用fasternet輕量化改進主干(完整教程)

1,Pconv(來自Fasternet)(可作為模型中的基礎卷積模塊使用) 論文鏈接:https://arxiv.org/abs/2303.03667 2,為了大家方便的使用,這里我對原本的PConv的代碼做了部分的改動&#xff0…

立哥尖端技術-云安全整合方案

云安全管理中心 安全管理中心具有集中管控云環境整體安全態勢的功能,具備以下功能: (1)部署方式:與云平臺緊耦合,可實現云平臺一鍵下單,自動交付。 (2)安全態勢總覽&a…

拿下掙值管理,軟考集成你就成功了一半!

在備考軟考集成的時候,掙值管理有多重要呢?掙值管理的計算題考的頻率非常高,基本上每年都會考。 而且,計算題基本上都是20分左右,只要能在這道計算題上得滿分,那么45分及格的考試就已經成功了一半。 今天…

豪華程度堪比飛機頭等艙?奔馳在北美發布Tourrider系列巴士

今年三月,奔馳工廠附近出現了一臺特殊的測試車。其突出的前保險杠以及豎置雙風擋等特殊配置,都在暗示著它并非是為歐洲市場打造。 根據特征推測,這臺車應該是為北美市場打造。 就在昨天,奔馳發布了旗下全新Tourrider系列豪華客車&…

python數據分析高效代碼合集

文章目錄 問題:我有5個dataframe,都包含time 列,如何將它們根據time列取交集,并保存到同一個excel的不同sheet頁中。**df1,df2, df3, df4, df5,其也要用取交集后的time列**問題:我有5個dataframe,都包含time 列,如何將它們根據time列取交集,并保存到同一個excel的不同…

npm安裝 node-sass

第一步:安裝node-gyp 1.: npm install node-gyp -g2.: node-gyp install3.: npm install node-sass