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

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

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

一、常用key命令

keys *查看當(dāng)前庫的所有key
exists key判斷某個(gè)key是否存在
type key查看key的類型
del key刪除指定key
unlink key非阻塞刪除,僅將key從keyspace元數(shù)據(jù)中刪除,真正的刪除會(huì)在后續(xù)異步中操作
ttl key查看還有多少秒過期,-1表示永不過期,-2表示已過期
expire key seconds為key設(shè)定過期時(shí)間
move key dbindex將當(dāng)前數(shù)據(jù)庫中的key移動(dòng)到指定數(shù)據(jù)庫中
select dbindex切換數(shù)據(jù)庫,默認(rèn)為0號(hào)數(shù)據(jù)庫
dbsize查看當(dāng)前數(shù)據(jù)庫key的數(shù)量
flushdb清空當(dāng)前庫
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設(shè)定為指定的“字符串”值。如果key已經(jīng)保存了一個(gè)值,那么這個(gè)操作會(huì)直接覆蓋原來的值,并且忽略原始類型。當(dāng)set命令執(zhí)行成功之后,之前設(shè)置的過期時(shí)間都將失效。

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

其他相關(guān)命令

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

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的值的長(zhǎng)度
append key value     在key的值后面拼接value

三、list類型

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

四、hash類型

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

五、set類型

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

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

六、zset類型

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

七、bitmap類型

由0和1狀態(tài)表現(xiàn)的二進(jì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)計(jì)字節(jié)數(shù),8位為一字節(jié)
bitcount key start end    返回指定范圍內(nèi)1的數(shù)量
bitop operation destkey key [key...]   
                          對(duì)不同的二進(jìn)制存儲(chǔ)數(shù)據(jù)進(jìn)行位運(yùn)算(and、or、not、xor),結(jié)果存入destkey

八、HyperLogLog

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

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

九、GEO

存儲(chǔ)地理位置。

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

十、stream

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

1. 隊(duì)列相關(guān)

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

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

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

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

問題

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

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

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

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

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

十一、bitfields

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

如 hello 等價(jià)于 01101000,01100101,01101100,01101100,01101111

(十進(jìn)制為448378203247)。

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

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

總結(jié)

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

相關(guān)文章

  • 詳解SSH框架和Redis的整合

    詳解SSH框架和Redis的整合

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

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

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

    Redis Sentinel的使用方法

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

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

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

    幾分鐘教你掌握Redis簡(jiǎn)單動(dòng)態(tài)字符串SDS

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

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

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

    Redis進(jìn)行驗(yàn)證碼登錄的項(xiàng)目實(shí)踐

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

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

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

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

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

    Redis中的GEO詳解

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

最新評(píng)論

余江县| 河南省| 浮山县| 遂溪县| 息烽县| 临武县| 静海县| 漳浦县| 红安县| 清徐县| 通河县| 德令哈市| 乐至县| 白河县| 玉树县| 祁门县| 焦作市| 济南市| 右玉县| 乐山市| 内黄县| 宁强县| 泰来县| 双辽市| 花莲市| 芜湖市| 丹江口市| 探索| 高要市| 廉江市| 青铜峡市| 句容市| 池州市| 上栗县| 涡阳县| 封开县| 南靖县| 潼南县| 合江县| 德江县| 云浮市|