欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis的數(shù)據(jù)類型解讀

 更新時(shí)間:2025年07月29日 09:16:00   作者:Saness1y  
本文總結(jié)Redis核心數(shù)據(jù)類型(String、Hash、List、Set、ZSet)的常用命令及用途,涵蓋基礎(chǔ)存儲(chǔ)、計(jì)數(shù)器、集合操作、排序查詢等場(chǎng)景,強(qiáng)調(diào)原子操作、阻塞處理等注意事項(xiàng),助于快速掌握Redis實(shí)際應(yīng)用技巧

String

以下是基于圖片中 Redis String類型命令 的提取與優(yōu)化整理,結(jié)合實(shí)用場(chǎng)景和注意事項(xiàng),便于快速掌握核心用法:

Redis String類型命令詳解與優(yōu)化指南

1. 基礎(chǔ)操作

命令

語法示例

作用

場(chǎng)景說明

SET

SET key value

添加/修改鍵值對(duì)

緩存、簡(jiǎn)單數(shù)據(jù)存儲(chǔ)

GET

GET key

獲取key對(duì)應(yīng)的value

讀取緩存或配置

SETNX

SETNX key value

key不存在時(shí)才設(shè)置(原子操作)

分布式鎖、防重復(fù)提交

set get setnx

  • setnx 如果key值不存在 才添加 如果存在 就不添加 這才是 真正的新增操作

  • set 后面 跟nx 也可以實(shí)現(xiàn)

2. 批量操作

命令

語法示例

優(yōu)勢(shì)

MSET

MSET k1 v1 k2 v2

減少網(wǎng)絡(luò)開銷,批量寫入

MGET

MGET k1 k2

批量讀取,提升效率

  • mset 多量 添加/修改
  • mget 多量 獲取

3. 數(shù)字增減

命令

語法示例

說明

INCR

INCR key

整數(shù)+1(如計(jì)數(shù)器)

INCRBY

INCRBY key 5

指定步長(zhǎng)(如+5)

INCRBYFLOAT

INCRBYFLOAT key 0.5

浮點(diǎn)數(shù)增減(如庫存調(diào)整)

incr (auto-increment)

  • incrby 值改成 負(fù)的 就 是自減了
  • incrbyfloat 浮點(diǎn)數(shù)增減

4. 有效期控制

命令

語法示例

用途

SETEX

SETEX key 60 "value"

設(shè)置鍵值對(duì)并指定有效期(秒)

PSETEX

PSETEX key 10000 "value"

毫秒級(jí)有效期(精準(zhǔn)控制)

setex (ex =expire)

添加一個(gè)Key 并且 設(shè)置有效期

同樣在后面加 ex 可以實(shí)現(xiàn)

psetex

命令對(duì)比速查表

需求

應(yīng)選命令

替代方案

設(shè)置值并過期

SETEX

SET

+EXPIRE

防覆蓋寫入

SETNX

SET

+NX

參數(shù)

浮點(diǎn)數(shù)計(jì)算

INCRBYFLOAT

客戶端計(jì)算后SET

Key的層級(jí)模式

在這里面就形成了層級(jí)結(jié)構(gòu)

Hash類型

Redis Hash類型常見命令速查表

命令格式

功能描述

示例用法

HSET key field value

設(shè)置/修改Hash鍵中指定字段的值

HSET user:100 name "張三"

HGET key field

獲取Hash鍵中指定字段的值

HGET user:100 name

→ "張三"

HMSET key field1 value1 [field2 value2...]

批量設(shè)置多個(gè)字段值(Redis 4.0+建議改用HSET)

HMSET product:500 price 2999 stock 100

HMGET key field1 [field2...]

批量獲取多個(gè)字段的值

HMGET user:100 name age

HGETALL key

獲取Hash鍵中所有字段和值(返回交替顯示的字段/值列表)

HGETALL user:100

HKEYS key

獲取Hash鍵中所有字段名

HKEYS product:500

→ ["price", "stock"]

HVALS key

獲取Hash鍵中所有字段值

HVALS product:500

→ ["2999", "100"]

HINCRBY key field increment

對(duì)指定字段值進(jìn)行整數(shù)遞增/遞減(支持負(fù)數(shù))

HINCRBY product:500 stock -5

HSETNX key field value

僅當(dāng)字段不存在時(shí)設(shè)置值(原子操作)

HSETNX user:100 email "a@test.com"

  • Hset

相當(dāng)于 一個(gè) key 可以存放 多個(gè)哈希key 和 哈希value

  • Hget

要同時(shí)指定 key 和 哈希key 才可以獲得 哈希value

HMset 輸入一個(gè)key 和一次性添加多個(gè) 哈希key 和 哈希value

HMget 輸入一次key 一次性輸入 多個(gè) 哈希key 去獲得 多個(gè) 哈希value

HgetAll 輸入一次key 獲得所有 的哈希key 哈希value 依次返回

Hkeys 獲得所有的哈希key

Hvals 獲得所有的哈希value

HincrBy 指定 key 指定哈希key 選擇增加的 數(shù)值

Hsetnx 指定key 和 哈希key 如果哈希key不存在 則添加 value 如果 存在 則添加失敗

Link類型

List接近于 Java中的LinkedList

Lpush 向左推入元素 L是 left

先推入1 后 2 后3 所以順序是 321

Rpush 向右推入元素 R是 right

Lpop 向左取出元素 并且刪除該元素

Rpop 向右取出元素 并且刪除該元素

Lrange 從左到右取出 范圍內(nèi)的數(shù) 并且不刪除

BLpop 左 延遲等待 刪除

阻塞方式 第三個(gè)參數(shù)是時(shí)間

如果表內(nèi)不存在數(shù)據(jù) 就會(huì)等100s 去等

打開第二個(gè)客戶端去添加數(shù)據(jù) 然后第一個(gè)客戶端就會(huì) 接收到然后刪除

BRpop 右 延遲等待刪除

阻塞方式 第三個(gè)參數(shù)是時(shí)間

如果表內(nèi)不存在數(shù)據(jù) 就會(huì)等100s 去等

打開第二個(gè)客戶端去添加數(shù)據(jù) 然后第一個(gè)客戶端就會(huì) 接收到然后刪除

Set類型

List接近于 Java中的LinkedList

Lpush 向左推入元素 L是 left

先推入1 后 2 后3 所以順序是 321

Rpush 向右推入元素 R是 right

Lpop 向左取出元素 并且刪除該元素

Rpop 向右取出元素 并且刪除該元素

Lrange 從左到右取出 范圍內(nèi)的數(shù) 并且不刪除

BLpop 左 延遲等待 刪除

阻塞方式 第三個(gè)參數(shù)是時(shí)間

如果表內(nèi)不存在數(shù)據(jù) 就會(huì)等100s 去等

打開第二個(gè)客戶端去添加數(shù)據(jù) 然后第一個(gè)客戶端就會(huì) 接收到然后刪除

BRpop 右 延遲等待刪除

阻塞方式 第三個(gè)參數(shù)是時(shí)間

如果表內(nèi)不存在數(shù)據(jù) 就會(huì)等100s 去等

打開第二個(gè)客戶端去添加數(shù)據(jù) 然后第一個(gè)客戶端就會(huì) 接收到然后刪除

SortSet類型

Zadd 添加 注意的是 第一個(gè)是 key 然后 前面的數(shù)據(jù)是 score 后面的值是 value

它會(huì)自動(dòng)按照score 分?jǐn)?shù)排名 升序

Zrem (rem remove) key 為 stus 就是把value 為 Tom 的刪除掉

Zrank (rank 排名)

它返回的排名 是從 0 開始的 0 1 2 所以 就是 2

Zrevrank (rev = reverse rank 排名)

倒序排序 從0開始 0 1 2 3 所以是 3

Zcard 獲取所有元素總個(gè)數(shù)

Zcount 0 82 范圍查詢個(gè)數(shù)

ZincrBy (選擇自增多少分 改成負(fù)的就減分了)

Zrange (查出這個(gè)范圍的所有數(shù)據(jù)) 起始為0

Zrevrange 通過排序個(gè)數(shù) 范圍查詢 (rev = reverse range 范圍) )

ZrangeByscore 通過分?jǐn)?shù)范圍查詢 value

總結(jié)

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

相關(guān)文章

  • 一文解決Redis后臺(tái)持久化失敗的問題:內(nèi)存不足導(dǎo)致fork失敗

    一文解決Redis后臺(tái)持久化失敗的問題:內(nèi)存不足導(dǎo)致fork失敗

    Redis作為一個(gè)內(nèi)存數(shù)據(jù)庫,在執(zhí)行后臺(tái)持久化(例如 BGSAVE 命令時(shí))需要fork一個(gè)子進(jìn)程來生成數(shù)據(jù)庫快照(RDB 文件),在生產(chǎn)環(huán)境中,有時(shí)你可能會(huì)在Redis日志中遇到持久化失敗的問題,本文將詳細(xì)介紹該問題的原因以及如何通過調(diào)整內(nèi)核和Redis配置來解決此問題
    2025-07-07
  • redis中刪除操作命令

    redis中刪除操作命令

    這篇文章主要介紹了redis中刪除操作命令,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Redis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Redis連接池監(jiān)控(連接池是否已滿)與優(yōu)化方法

    Redis連接池監(jiān)控(連接池是否已滿)與優(yōu)化方法

    本文詳細(xì)講解了如何在Linux系統(tǒng)中監(jiān)控Redis連接池的使用情況,以及如何通過連接池參數(shù)配置、系統(tǒng)資源使用情況、Redis命令監(jiān)控、外部監(jiān)控工具等多種方法進(jìn)行檢測(cè)和優(yōu)化,以確保系統(tǒng)在高并發(fā)場(chǎng)景下的性能和穩(wěn)定性,討論了連接池的概念、工作原理、參數(shù)配置,以及優(yōu)化策略等內(nèi)容
    2024-09-09
  • Redis 實(shí)現(xiàn)隊(duì)列原理的實(shí)例詳解

    Redis 實(shí)現(xiàn)隊(duì)列原理的實(shí)例詳解

    這篇文章主要介紹了Redis 實(shí)現(xiàn)隊(duì)列原理的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Redis 安裝 redistimeseries.so(時(shí)間序列數(shù)據(jù)類型)的配置步驟

    Redis 安裝 redistimeseries.so(時(shí)間序列數(shù)據(jù)類型)的配置步驟

    這篇文章主要介紹了Redis 安裝 redistimeseries.so(時(shí)間序列數(shù)據(jù)類型)詳細(xì)教程,配置步驟需要先下載redistimeseries.so 文件,文中介紹了啟動(dòng)失敗問題排查,需要的朋友可以參考下
    2024-01-01
  • redis源碼分析教程之壓縮鏈表ziplist詳解

    redis源碼分析教程之壓縮鏈表ziplist詳解

    ziplist結(jié)構(gòu)在redis運(yùn)用非常廣泛,是列表、字典等數(shù)據(jù)類型的底層結(jié)構(gòu)之一。ziplist的優(yōu)點(diǎn)在于能夠一定程度地節(jié)約內(nèi)存。下面這篇文章主要給大家介紹了關(guān)于redis源碼分析教程之壓縮鏈表ziplist的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • 使用高斯Redis實(shí)現(xiàn)二級(jí)索引的方法

    使用高斯Redis實(shí)現(xiàn)二級(jí)索引的方法

    本文介紹了如何通過高斯Redis搭建二級(jí)索引,二級(jí)索引在電商、圖(hexastore)、游戲等領(lǐng)域具有廣泛的應(yīng)用場(chǎng)景,高斯redis現(xiàn)網(wǎng)亦有很多類似應(yīng)用,需要的朋友跟隨小編一起看看吧
    2022-07-07
  • 在Redis集群中使用pipeline批量插入的實(shí)現(xiàn)方法

    在Redis集群中使用pipeline批量插入的實(shí)現(xiàn)方法

    這篇文章主要介紹了在Redis集群中使用pipeline批量插入的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于Redis分布式BitMap的應(yīng)用分析

    基于Redis分布式BitMap的應(yīng)用分析

    這篇文章主要介紹了基于Redis分布式BitMap的應(yīng)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論