Redis中五種資料型別總結

2021-06-23 01:37:35 字數 4521 閱讀 9983

redis可以儲存5種基本的資料型別,主要包括:string、hash、list、set、sort set。

以下就對儲存的每種型別進行乙個總結,以及記錄他們基本的命令和各個命令之間的區別:

1)、string型別

1、set [設定key-value鍵值對]

> set name "john"

2、setnx [設定key-value鍵值對,nx代表not exist,表示在鍵不存在的情況下去設定,如果鍵存在返回0,否則返回1]

> set name "malibin"

ok> get name

"malibin"

> setnx name "xuminke"

(integer) 0

> setnx email [email protected]

(integer) 1

> get email

"[email protected]"

3、setex [設定key-value鍵值對,ex表示設定鍵的有效時間,當超過設定的時間該鍵失效]

> setex name 5 "malibin"    [鍵name的有效時間為5秒,超過5秒鍵失效]

4、setrange [從某個鍵的值的某個位置開始替換]

> setnx email "[email protected]"

> setrange email 9 "gmail.com"

5、 mset [批量設定key-value鍵值對]

> mset key1 "test1" key2 "test2" key3 "test3" key4 "test4"

>get key1

"test1"

6、msetnx [同setnx,這裡需要注意的是如果有其中乙個鍵沒有設定成功,則所有的鍵都不會設定成功]

7、msetex [同setex] 

8、getset [對乙個鍵設定新值返回久值]

>set name "old-value"

>get name

"old-value"

>getset name "new-value"

>get name

"new-value"

9、get [獲得某個鍵對應的值,跟set命令相對]

>set name "set commond"

>get name

"set commond"

10、mget [批量獲取]

>mset key1 "test1" key2 "test2" key3 "test3" key4 "test4"

>mget key1 key2 key3 key4

11、getrange [從某個鍵對應的值的某個位置開始獲取]

>set name "0123456789"

>getrange name 0 5   [返回第0-5之間的字元]

12、incr [對某個鍵值對進行遞增,自增1]

>set index 10

>incr index 

1113、incrby [對某個鍵值對進行遞增,增加任意值]

>set index 10

>incrby index 5  

1514、decr [跟incr相反,自減1]

>set index 10

>decr index

15、decrby [跟incrby相反,自減任意值]

>set index 10

>decrby 5

2)、hash型別

1、hset [設定hash]

>hset user:001 name "john"

2、hget [獲得hash的某個field的值]

>hget user:001 name

"john"

3、hsetnx [其作用類似於string型別的setnx]

>hsetnx user:001 name "john-new"  [左邊的命令不會設定成功,原因是name屬性已經存在]

4、hmset [批量設定]

>hmset user:002 name "lyce" age 20 *** meal

5、hmget [批量取得]

>hmget user:002 name age ***

6、hincrby [對hash的某個欄位自增]

>hincrby user:002 age 5

>hget user:002 age

257、hexists [判斷hash中的每個字段是否存在]

>hexists user:001 age

0   [user:001中並沒有age這個屬性]

>hexists user:001 name

18、hlen [返回hash的長度]

>hlen user:002

9、hdel [刪除hash中的每個字段]

>hdel user:002 age  [刪除hash user:002中的age欄位]

10、hkeys [獲得所有的key值]

>hkeys user:002

11、kvals [獲得所有的key對應的value值]

>hvals user:002

12、hgetall [獲得hash中的key值和value值]

>hgetall user:002

3)、list型別

list型別是redis中的鍊錶,通過向鍊錶頭部和尾部插入資料或者刪除資料,即使在乙個鍊錶中已經有幾百萬條資料,該操作也可以在常量時間內完成,但是如果向鍊錶中間插入或者刪除元素,其效率不高。

1、lpush [項鍊表的頭部插入元素]

>lpush list1 "one"

2、lpushx [只有當鍊表存在時才會在鍊錶的頭部插入元素]

>lpushx list2 "one"  [list2這個鏈表現在根本不存在所以不會有任何操作]

3、lrange key start stop [獲得鍊錶從start到stop之間的元素]

>lpush list1 "two"

>lpush list1 "three"

>lpush list1 0 -1   [從頭到尾返回list1中的所有元素]

4、lpop [彈出鍊錶中的頭部元素]

>lpop list1

"three"

5、llen [返回鍊錶的長度]

>llen list1

26、lrem list count value  [表示從list鍊錶中刪除count個value元素]

>lpush list3 "one"

>lpush list3 "one"

>lpush list3 "one"

>lpush list3 "two"

>lpush list3 "three"

>lrem list3 3 "one"    

[如果count>max-length就刪除max-length個元素,如果count>max-length,就刪除count個元素]。

7、lset list index value [設定鍊錶某個位置的元素的值]

>lpush list4 "one"

>lpush list4 "one"

>lpush list4 "three"

>lset list4 1 "two"

8、lindex list index  [返回請求的元素,如果請求的位置超出了鍊錶的長度,則返回nil]

>lpush list5 "one"

>lpush list5 "two"

>lpush list5 "three"

>lpush list5 "four"

>lpush list5 "five"

>lindex list5 3

"two"

9、ltrim list start stop  [保留鍊錶中從start到stop之間的元素,刪除除此以外的所有元素,如果start>stop,會返回乙個空鍊錶,同時該list會被刪除,如果stop大於llen,會保留從start開始到鍊錶尾部的所有元素]

>lpush list6 "one"

>lpush list6 "two"

>lpush list6 "three"

>lpush list6 "four"

>lpush list6 "five"

>ltrim list6 0 2

>lrange list6 0 -1

"five" "four" "three"

10、rpush [從鍊錶的尾部插入]

11、rpushx [類似於lpushx]

12、rpop [彈出鍊錶的尾部元素]

13、rpoplpush source destination [從第一source的尾部刪除乙個元素插入到destination的頭部]

>lpush source "two"

>lpush source "one"

>lpush destination "one"

>rpoplpush source destination

>lrange destination 0 -1

"two" "one"

Redis 五種資料型別

一 前言 上篇部落格已經對redis的一些基本知識做了一些簡介,這篇部落格,將簡單介紹一些redis的五種資料型別。分別為string 字串 hash 雜湊 list 鍊錶 set 集合 zset 有序集合 對這些型別可以執行很多原子性的操作 比如向乙個string型別的value後面追加字串 向l...

Redis 五種資料型別

目錄 redis共有strings hashs lists sets sorted sets五種資料型別,可以說已經比較豐富了。下面只對這幾種資料型別的資料結構與用途做簡要介紹。至於每種資料型別的操作api,這裡只簡單一提,不再一一詳細介紹,有需要的使用者可以google即可。string是最簡單的...

Redis 五種資料型別

redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 資料型別一 字串 0.1 6379 set name hubotao2 ok127.0 0.1 6379 get name hubotao2 資料型別二 hash...