Redis五種資料結構

2021-09-11 07:43:43 字數 3086 閱讀 4392

redis除了儲存鍵之外還可以儲存常見的5種資料型別,分別是:string、list、set、zset、hash。

結構型別

結構儲存的值

結構的讀寫能力

string字串

可以是字串、整數或浮點數

對整個字串或字串的一部分進行操作

對整數或浮點數進行自增或自減操作

list列表

乙個鍊錶,鍊錶上的每個節點都

包含乙個字串

對鍊錶的兩端進行push和pop操作,讀取單個或多個元素;

根據值查詢或刪除元素

set集合

包含字串的無序集合

集合中每個字串都是獨一無二的

新增、獲取、刪除元素。檢查乙個元素是否存在於集合中

計算交集、並集、差集

hash雜湊

包含鍵值對的無序雜湊表

新增、獲取、刪除單個元素

獲取所有鍵值對元素

zset有序集合

和雜湊一樣,用於儲存鍵值對

字串成員與浮點數分數之間的有序對映

元素的排列順序由分數的大小決定

新增、獲取、刪除單個元素

根據分值範圍或成員來獲取元素

redis中的string型別就是乙個由字串組成的序列。

1.下圖是乙個string型別的例項,其中鍵為hello,值為world。

2.常用命令如下:

get         |獲取儲存在給定鍵中的值         | get name

set |設定儲存在給定鍵中的值 | set name lll

del |刪除儲存在給定鍵中的值 | del name

incr |將鍵儲存的值加一 | incr key

decr |將鍵儲存的值減1 | decr key

incrby |將鍵儲存的值加上整數 |incrby key amount

decrby |將鍵儲存的值減去整數 |decrby key amount

3.應用場景:

string是常用的一種資料型別,普通的key/value儲存都可以歸為此類,value不僅是string,還可以是數字。比如想知道什麼時候封鎖乙個ip位址(訪問超過幾次),incrby命令讓這些變得很容易,通過原子遞增保持計數。

常用命令:

rpush     |將給定值推入到列表右端                 |rpush key value

lpush

rpop |從列表的右端彈出乙個值,並返回被彈出的值| rpop key

lpop

lrange |獲取列表在給定範圍上的所有值 |lrange key 0 -1

lindex

應用場景:

redis的集合型別和列表都可以儲存多個字串,它們的不同之處在於。列表可以儲存多個相同的字串,而集合通過雜湊表來保證自己儲存的每個字串都是各不相同的。

常用命令如下:

sadd       |將給定元素新增到集合                      |sadd key item

smembers |返回集合中包含的所有元素 |smembers key

sismember |檢查給定元素是否存在於集合中 |sismember key item

srem |如果給定的元素存在於集合中,那麼移除這個元素 |serm key item

使用場景:

redis的雜湊可以儲存多個鍵值對之間的對映。和字串一樣,雜湊儲存的值既可以是字串又可以是數字值。並且使用者同樣可以對雜湊儲存的數字進行自增或自減操作。

常用命令:

hset    |新增鍵值對                                 |hset hash-key sub-key1 value1

hget |獲取指定雜湊鍵的值 |hget hash-key key1

hgetall |獲取雜湊中包含的所有鍵值對 |hgetall hash-key

hdel |如果給定鍵存在於雜湊中,那麼就移除這個鍵 |hdel hash-key sub-key1

有序集合和雜湊一樣,用於儲存鍵值對。有序集合的鍵被稱為成員member,每乙個成員都是獨一無二的。而有序集合的值被稱為score,分值必須是浮點數。有序集合是redis裡面唯一乙個即可以根據成員訪問元素,又可以根據分值以及分值的排序來訪問元素的結構。

常用命令如下:

zadd     |將乙個帶有給定分值的成員新增到哦有序集合裡面    |zadd zset-key 178 member1

zrange |根據元素在有序集合中所處的位置,從有序集合中獲取多個元素 |zrange zset-key 0-1 withccores

zrem |如果給定元素成員存在於有序集合中,那麼就移除這個元素 |zrem zset-key member1

參考文章:

Redis五種資料結構

對redis來說,所有的key 鍵 都是字串,所謂的5種資料結構是指針對value而言 資料結構型別 說明使用場景 常用方法 其他鏈結 string字串型別1 redis中最基本的資料型別,乙個key對應乙個value。2 是二進位制安全的,意思是 redis 的 string 可以包含任何資料。如...

redis的五種資料結構

key 都是字串 value 五種資料結構 常用命令 常用命令 新增 lpush key value 將元素加入列表左邊 rpush key value 將元素加入列表右邊 獲取 lrange key start end 獲取範圍 刪除 lpop key 刪除列表最左邊的元素,並將元素返回 rpop...

Redis的五種資料結構

redis支援持久化只是它的一件 它提供了多達5種資料儲存方式 string是最簡單的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value,其上支援的操作與memcached的操作類似。但它的功能更豐富。list是乙個鍊錶結構,主要功能是push pop 獲取乙個範圍的...