Redis常見的5種不同的資料型別詳解

2021-08-31 15:47:49 字數 2390 閱讀 6996

redis簡介以及和其他快取資料庫的區別

redis除了可以儲存鍵還可以儲存常見的5種資料型別,分別是:string、list、set、hash、zset。對於redis的命令有一部分是可以公用的,但是還有一些其他的命令是屬於特殊使用的。

首先看看一張關於redis5種資料結構的對比:

下邊就分別介紹5中國不同的資料結構型別。

redis中的string型別就是乙個由位元組組成的序列,他和其他程式語言或者其他鍵值對儲存提供的字串操作非常相似。

乙個string型別的例項,其中鍵為hello,值為world:

(1)常用命令如下:

(2)redis中的自增命令和自減命令:

(3)除了get、set、del、自增、自減等操作外,redis還提供了下面一些操作:

如下圖所示:

(4)應用場景:

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

redis中的list其實就是鍊錶(redis 使用雙端鍊錶實現的 list),相信學過資料結構知識的人都應該能理解其結構。

乙個list型別的例項,列表包含的元素,相同元素可以重複出現:

需要注意的是:乙個list結構可以有序的儲存多個字串,並且是允許元素重複的。

(1)常用命令如下:

lpush和rpush命令分別用於將元素推入列表的左端和右端;lpop和rpop命令分別用於從列表的左端和右端彈出元素,也就是刪除元素;

其中對於lrange命令來說,使用0位範圍的起始索引,-1為範圍的結束索引,可以取出列表包含元素的所有元素。

(2)除了上邊比較常用的命令之外,redis列表還可以從列表裡邊移除元素、將元素插入列表中間、將列表修剪至指定長度的命令,以及一些其他命令。

(3)使用場景:

redis的集合和列表都可以儲存多個字串,他們的不同支援在於,列表可以儲存多個相同的字串,而集合通過使用雜湊表來保證自己儲存的每個字串都是各不相同的。

redis的集合使用的是無序的方式儲存元素,所以不可以像list列表那樣,將元素推入集合的某一端,或者從集合的某一端彈出元素。

乙個set集合型別的例項,各不相同的元素,無序排列:

(1)常用命令如下:

(2)除了常見的命令之外,還有交集、並集、差集的計算,如下:

(3)使用場景:

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

乙個list雜湊型別的例項,是乙個包含兩個鍵值對的雜湊鍵:

(1)常用命令如下:

(2)其他命令包含新增和刪除鍵值對的命令、獲取所有鍵值對的命令、以及對鍵值對的值進行自增和自減操作的命令,如下所示:

有序集合和雜湊一樣,用於儲存鍵值對;有序集合的鍵被稱為成員member,每乙個成員都是獨一無二的;而有序集合的值被稱為分值score,分值必須是浮點數。

有序集合是redis裡面唯一乙個既可以根據成員訪問元素,又可以根據分值以及分值的排序來訪問元素的結構。

乙個有序集合型別的例項,zset-key是乙個包含兩個元素的有序集合鍵:

(1)常用命令如下:

Redis常見的5種不同的資料型別詳解

redis簡介以及和其他快取資料庫的區別 redis除了可以儲存鍵還可以儲存常見的5種資料型別,分別是 string list set hash zset。對於redis的命令有一部分是可以公用的,但是還有一些其他的命令是屬於特殊使用的。首先看看一張關於redis5種資料結構的對比 下邊就分別介紹5...

Redis專題 五 Redis常見的5種資料型別

redis除了可以儲存鍵還可以儲存常見的5種資料型別,分別是 string list set hash zset。對於redis的命令有一部分是可以公用的,但是還有一些其他的命令是屬於特殊使用的。首先看看一張關於redis的5種資料結構的對比 redis中的string型別就是乙個由位元組組成的序列...

redis總結 redis支援的5種資料結構

1.redis支援5種資料結構 1 string 2 hash 可以作為單點登入,把cookieid儲存起來,設定過期時間 3 set set本身無序的,可以作為全域性去重功能,jvm的set也是無序不重複的,如果是集群的話就起不到這個作用,所以redis可以很好解決 4 sortedset 有序集...