最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Redis之十大數(shù)據(jù)類型解讀

 更新時間:2026年04月10日 14:22:40   作者:當歸.?z?Z  
文章主要介紹了Redis的基本操作命令,包括key管理、string、list、hash、set、zset、bitmap、HyperLogLog、GEO、stream、bitfields等數(shù)據(jù)類型的操作方法和應用場景

一、常用key命令

keys *查看當前庫的所有key
exists key判斷某個key是否存在
type key查看key的類型
del key刪除指定key
unlink key非阻塞刪除,僅將key從keyspace元數(shù)據(jù)中刪除,真正的刪除會在后續(xù)異步中操作
ttl key查看還有多少秒過期,-1表示永不過期,-2表示已過期
expire key seconds為key設定過期時間
move key dbindex將當前數(shù)據(jù)庫中的key移動到指定數(shù)據(jù)庫中
select dbindex切換數(shù)據(jù)庫,默認為0號數(shù)據(jù)庫
dbsize查看當前數(shù)據(jù)庫key的數(shù)量
flushdb清空當前庫
flushall清空全部庫

redis命令不區(qū)分大小寫,但key區(qū)分大小寫

二、string類型

1. set

SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |
  EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]

將鍵key設定為指定的“字符串”值。如果key已經(jīng)保存了一個值,那么這個操作會直接覆蓋原來的值,并且忽略原始類型。當set命令執(zhí)行成功之后,之前設置的過期時間都將失效。

  • NX – 只有鍵 key 不存在的時候才會設置 key 的值
  • XX– 只有鍵 key 存在的時候才會設置 key 的值
  • GET -- 返回 key 之前存儲的值,如果 key 不存在返回空
  • EXseconds– 設置鍵key的過期時間,單位為秒
  • PXmilliseconds– 設置鍵key的過期時間,單位為毫秒
  • EXAT unix-time-second –設置鍵key的過期時間戳,單位為秒
  • PXAT unix-time-milliseconds –設置鍵key的過期時間戳,單位為毫秒
  • KEEPTTL–保留key 的過期時間

其他相關(guān)命令

mset k1 v1 k2 v2 ...         設置多個key的值
mget k1 k2 k3 ...            獲取多個key的值
msetnx k1 v1 k2 v2 ...       當key不存在時設置key的值
getrange key start end       獲取key的值 [start, end] 的子串,負數(shù)表示從后面開始第幾位
setrange key offset value    從offset位開始,用value替換原來從offset開始的相同長度的字符串

2. incr/decr

incr key                將key的值(一定要是數(shù)字)加1
decr key                將key的值減1
incrby key increment    將key的值加increment
decrby key decrement    將key的值減decrement    

3. strlen/append

strlen key           獲取key的值的長度
append key value     在key的值后面拼接value

三、list類型

LPUSH	    將一個或多個值插入到列表頭部
RPUSH	    將一個或多個值插入到列表尾部
LRANGE	    獲取列表指定范圍內(nèi)的元素
LPOP	    移出并獲取列表的第一個元素
RPOP	    移除并獲取列表最后一個元素
LINDEX	    通過索引獲取列表中的元素
LLEN	    獲取列表長度
LREM	    從列表頭部開始移除指定個數(shù)等于指定值的元素
LTRIM	    對列表按給定范圍進行截取
RPOPLPUSH	移除列表的最后一個元素,并將該元素添加到另一個列表頭部并返回
LSET	    通過索引設置列表元素的值
LINSERT	    在列表的指定元素前或者后插入元素

四、hash類型

HSET	用于設置存儲在 key 中的哈希表字段的值
HGET	獲取存儲在哈希表中指定字段的值
HGETALL	獲取在哈希表中指定 key 的所有字段和值
HDEL	用于刪除哈希表中一個或多個字段
HLEN	獲取存儲在 key 中的哈希表的字段數(shù)量
HEXISTS	用于判斷哈希表中字段是否存在
HKEYS	獲取存儲在 key 中的哈希表的所有字段
HVALS	用于獲取哈希表中的所有值
HINCRBY	為存儲在 key 中的哈希表指定字段做整數(shù)增量運算

五、set類型

SADD	        向集合添加一個或多個成員
SMEMBERS	    返回集合中的所有成員
SISMEMBER	    判斷 member 元素是否是集合 key 的成員
SREM	        移除集合中一個或多個成員
SCARD	        獲取集合的成員數(shù)
SRANDMEMBER	    隨機返回集合中指定個數(shù)的元素
SPOP	        移除并返回集合中的一個隨機元素
SMOVE	        將元素從一個集合移動到另一個集合

SUNION	        返回所有給定集合的并集
SDIFF	        返回給定所有集合的差集
SINTER	        返回給定所有集合的交集

六、zset類型

ZADD	        向有序集合添加一個或多個成員,或者更新已存在成員的分數(shù)
ZRANGE	        通過索引區(qū)間返回有序集合成指定區(qū)間內(nèi)的成員
ZREVRANGE	    返回有序集中指定區(qū)間內(nèi)的成員,通過索引,分數(shù)從高到底
ZRANGEBYSCORE	通過分數(shù)返回有序集合指定分數(shù)區(qū)間內(nèi)的成員
ZSCORE	        返回有序集中成員的分數(shù)值
ZCARD	        獲取有序集合的成員數(shù)
ZREM	        移除有序集合中的一個或多個成員
ZINCRBY	        有序集合中對指定成員的分數(shù)加上增量 increment
ZCOUNT	        計算在有序集合中指定區(qū)間分數(shù)的成員數(shù)
ZMPOP numkeys key [key ...] MIN|MAX [COUNT count]           
                從numkeys個排序集中按分數(shù)從?。ù螅棾鯿ount個元素,它們是成員分數(shù)對
ZRANK	        返回有序集合中指定成員的索引
ZREVRANK	    返回有序集合中指定成員的排名,有序集成員按分數(shù)值遞減(從大到小)排序

七、bitmap類型

由0和1狀態(tài)表現(xiàn)的二進制位的bit數(shù)組,使用type key得到的結(jié)果為“string”,可以看為string類型的子類。

setbit key offset val     給指定key的值的第offset位(從0開始)賦值val
getbit key offset         獲取指定key的第offset位
strlen key                統(tǒng)計字節(jié)數(shù),8位為一字節(jié)
bitcount key start end    返回指定范圍內(nèi)1的數(shù)量
bitop operation destkey key [key...]   
                          對不同的二進制存儲數(shù)據(jù)進行位運算(and、or、not、xor),結(jié)果存入destkey

八、HyperLogLog

去重復統(tǒng)計功能的基數(shù)估計算法,只根據(jù)輸入元素來計算基數(shù),而不會存儲輸入元素本身。(基數(shù)可以看做是set的元素個數(shù))

pfadd key element [element ...]             添加指定元素到HyperLogLog
pfcount key [key ...]                       返回給定HyperLogLog的基數(shù)估算值
pfmerge destkey sourcekey [sourcekey ...]   將多個HyperLogLog合并

九、GEO

存儲地理位置。

GEOADD	            將指定的地理空間位置(緯度、經(jīng)度、名稱)添加到指定的key中
GEOPOS	            從key里返回所有給定位置元素的位置(經(jīng)度和緯度)
GEODIST	            返回兩個給定位置之間的距離
GEORADIUS	        以給定的經(jīng)緯度為中心, 找出某一半徑內(nèi)的元素
GEORADIUSBYMEMBER	找出位于指定范圍內(nèi)的元素,中心點是由給定的位置元素決定
GEOHASH	            返回一個或多個位置元素的 Geohash 表示

十、stream

redis版的MQ,消息中間件+阻塞隊列。

1. 隊列相關(guān)

xadd         添加消息到隊列末尾,返回消息id(id格式:毫秒時間戳-該毫秒內(nèi)的第幾條(0開始)消息)
strim        限制stream長度,如果已經(jīng)超長會進行截取
xdel         刪除消息
xlen         獲取stream中消息長度
xrange       獲取消息列表,忽略刪除的消息
xrevrange    和xrange相比在于反向獲取,id從大到小
xread        獲取消息,返回大于指定id的消息

2. 消費組相關(guān)

XGROUP CREATE    創(chuàng)建消費者組,$表示從尾部開始消費(即只消費新加入的消息),0表示從頭部
XREADGROUP GROUP group consumer STREAMS stream id 
                 消費組group中的消費者consumer從stream中的id開始讀取消息,id為>表示從
                 第一條尚未被消費的消息開始讀?。╯tream中的消息一旦被消費組的一個消費者
                 讀取了,就不能再被該消費組內(nèi)的其他消費者讀取了)

消費組的目的:讓組內(nèi)多個消費者共同分擔讀取消息,實現(xiàn)消息讀取負載在多個消費者間是均衡分布的。

問題

基于 Stream 實現(xiàn)的消息隊列,如何保證消費者在發(fā)生故障或宕機再次重啟后,仍然可以讀取未處理完的消息?

Streams 會自動使用內(nèi)部隊列(也稱為 PENDING List)留存消費組里每個消費者讀取的消息保底措施,直到消費者使用 XACK 命令通知 Streams“消息已經(jīng)處理完成”。

消費確認增加了消息的可靠性,一般在業(yè)務處理完成之后,需要執(zhí)行 XACK 命令確認消息已經(jīng)被消費完成。

xpending     查詢每個消費組內(nèi)所有消費者【已讀取,但尚未確認】的消息
xack         向消息隊列確認消息處理已完成

xinfo     打印stream相關(guān)信息

十一、bitfields

將一個redis字符串看作是一個由二進制位組成的數(shù)組,并能對變長位寬和任意沒有字節(jié)對齊的指定整型位域進行尋址和修改。

如 hello 等價于 01101000,01100101,01101100,01101100,01101111

(十進制為448378203247)。

BITFIELD key [GET type offset | 
             [OVERFLOW WRAP|SAT|FAIL] SET type offset value | 
              INCRBY type offset increment]

  • WRAP(默認值):使用回繞方法處理溢出,如i8表示八位有符號二進制,范圍為-128-127,當127+i溢出時,得到的值為-128+(i-1)
  • SAT:使用飽和計算方法處理溢出,下溢結(jié)果為最小整數(shù)值,上溢為最大整數(shù)值
  • FAIL:拒絕執(zhí)行導致溢出的計算,并向用戶返回空值表示計算未被執(zhí)行

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解SSH框架和Redis的整合

    詳解SSH框架和Redis的整合

    本篇文章主要介紹了SSH框架和Redis的整合,詳細的介紹了Struts+Spring+Hibernate和Redis整合,有興趣的可以了解一下。
    2017-03-03
  • 使用Redis實現(xiàn)實時排行榜的示例

    使用Redis實現(xiàn)實時排行榜的示例

    為了實現(xiàn)一個實時排行榜系統(tǒng),我們可以使用Redis的有序集合,本文主要介紹了使用Redis實現(xiàn)實時排行榜的示例,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Redis Sentinel的使用方法

    Redis Sentinel的使用方法

    這篇文章主要介紹了Redis Sentinel的使用方法,幫助大家更好的理解和學習使用Redis數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-03-03
  • Redis總結(jié)筆記(二):C#連接Redis簡單例子

    Redis總結(jié)筆記(二):C#連接Redis簡單例子

    這篇文章主要介紹了Redis總結(jié)筆記(二):C#連接Redis簡單例子,需要的朋友可以參考下
    2015-01-01
  • 幾分鐘教你掌握Redis簡單動態(tài)字符串SDS

    幾分鐘教你掌握Redis簡單動態(tài)字符串SDS

    這篇文章主要為大家介紹了幾分鐘教你掌握Redis簡單動態(tài)字符串SDS方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Redis使用命令行與多數(shù)據(jù)庫配置

    Redis使用命令行與多數(shù)據(jù)庫配置

    本文詳細講解了Redis使用命令行與多數(shù)據(jù)庫配置的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • Redis進行驗證碼登錄的項目實踐

    Redis進行驗證碼登錄的項目實踐

    本文主要介紹了Redis進行驗證碼登錄的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • Redis中RPOP、BRPOP、LPOP和BLPOP使用示例代碼

    Redis中RPOP、BRPOP、LPOP和BLPOP使用示例代碼

    這篇文章主要介紹了Redis中RPOP、BRPOP、LPOP和BLPOP使用的相關(guān)資料,解釋了列表的方向,并詳細說明了每個命令的功能、返回值、使用場景,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-05-05
  • Redis命令使用技巧之Keys的相關(guān)操作

    Redis命令使用技巧之Keys的相關(guān)操作

    Redis KEYS命令用于搜索具有匹配模式的鍵。下面這篇文章主要給大家介紹了關(guān)于Redis命令使用技巧之Keys的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-10-10
  • Redis中的GEO詳解

    Redis中的GEO詳解

    Redis GEO是一個輕量級的地理位置解決方案,適合需要快速存儲和查詢位置數(shù)據(jù)的場景,本文給大家介紹Redis的GEO詳解,感興趣的朋友一起看看吧
    2025-06-06

最新評論

乐昌市| 城口县| 庄浪县| 芦山县| 保康县| 民丰县| 武汉市| 彰化市| 白城市| 来凤县| 澎湖县| 黎城县| 濮阳县| 麻江县| 左权县| 龙南县| 石嘴山市| 台前县| 株洲县| 盐津县| 汉中市| 唐山市| 海林市| 高安市| 涟源市| 花垣县| 上高县| 辽中县| 休宁县| 民和| 迭部县| 上林县| 南澳县| 塔河县| 法库县| 丰台区| 黔江区| 莆田市| 都昌县| 鄂伦春自治旗| 大宁县|