Redis的基礎(chǔ)數(shù)據(jù)類(lèi)型介紹和使用

本文主要解決以下問(wèn)題:

Redis有哪些數(shù)據(jù)類(lèi)型?
各種類(lèi)型有什么特點(diǎn)怎么使用?

這里的數(shù)據(jù)類(lèi)型是指,Redis鍵值對(duì)的值的類(lèi)型。

本文只是寫(xiě)出最基礎(chǔ)的概念和最常用的命令。
更多,更完整的命令,可以訪(fǎng)問(wèn)下面的文檔:
Redis教程
Redis使用手冊(cè)

基礎(chǔ)數(shù)據(jù)類(lèi)型五種:Strings , Lists , Hashes ,Sets ,Sorted sets。

1.Strings類(lèi)型(字符串類(lèi)型)
  • 最基礎(chǔ)的類(lèi)型
  • 二進(jìn)制安全,可以包含各種數(shù)據(jù)。
  • 可以做原子計(jì)算器
  • 最大長(zhǎng)度:512M。(需要查證和核實(shí))

常用命令:
SET key value:設(shè)置一個(gè)字符串鍵值對(duì)
GET key : 根據(jù)key獲取值
實(shí)例如下:

127.0.0.1:6379> set myStrKey 123  //設(shè)置一個(gè)key是“myStrKey”值是“123”的鍵值對(duì)。
OK
127.0.0.1:6379> get myStrKey   //獲取key“myStrKey”的值。
"123"  //返回值“123”
127.0.0.1:6379>
2.Lists類(lèi)型(列表類(lèi)型)
  • 底層使用雙向鏈表實(shí)現(xiàn)。
  • 元素可以重復(fù)。
  • 添加刪除元素快,查找元素慢(??還需要補(bǔ)充了解,按照索引來(lái)操作理論上如此)

常用命令如下:
LPUSH key value:在左邊加入一個(gè)元素。
RPUSH key value:在右邊加入一個(gè)元素。
LRANGE key start stop:從列表中指定一個(gè)范圍來(lái)取元素。

127.0.0.1:6379> LPUSH myList A //從列表myList左邊添加一個(gè)元素A
(integer) 1
127.0.0.1:6379> LPUSH myList A //從列表myList左邊添加一個(gè)元素A
(integer) 2
127.0.0.1:6379> LRANGE myList 0 10 //取出列表0到10的內(nèi)容
1) "A"
2) "A"
127.0.0.1:6379> RPUSH myList B //從列表myList右邊添加一個(gè)元素B
(integer) 3
127.0.0.1:6379> LRANGE myList 0 10 //取出列表0到10的內(nèi)容
1) "A"
2) "A"
3) "B"
127.0.0.1:6379>
3.Hashes 類(lèi)型(哈希類(lèi)型)

適合存儲(chǔ)對(duì)象,特別是JSON這樣鍵值對(duì)類(lèi)型的對(duì)象。

  • 本類(lèi)型就是value的值也是多個(gè)鍵值對(duì)。

常用命令如下:
HSET key field velue : 單個(gè)鍵值對(duì)存儲(chǔ),還可以用于修改key的某個(gè)field(字段)的值。
HMSET key field value [field value ...]:多個(gè)鍵值對(duì)批量存儲(chǔ)。
HGETALL key :獲取key的所有值 。
HGET key field : 獲取key的field字段的值。

127.0.0.1:6379> HSET myHashes name zhao  //設(shè)置key為“myHashes”的hash,包含1個(gè)字段“name” ,值為“zhao”
(integer) 1
127.0.0.1:6379> HGETALL myHashes //獲取key為“myHashes”的hash的所有字段和值。
1) "name"
2) "zhao"
127.0.0.1:6379> HGET myHashes name /獲取key為“myHashes”的hash的字段“name”的值。
"zhao"
127.0.0.1:6379> HSET myHashes name zhao11 //修改key=“myHashes”的hash的name字段的值為"zhao11"
(integer) 0
127.0.0.1:6379> HGET myHashes name //獲取key=myHashes 的hash的name字段的值。
"zhao11"
127.0.0.1:6379>

4.Sets (無(wú)序集合類(lèi)型)
  • 元素不能重復(fù),如果重復(fù)就會(huì)覆蓋。
  • 豐富的交集,并集等操作。

常用命令如下:
SADD key member :添加一個(gè)元素。
SMEMBERS key :列出集合的所有元素。

127.0.0.1:6379> SADD mySets 11 //向key=mySets的集合添加元素11
(integer) 1
127.0.0.1:6379> SADD mySets 22 //向key=mySets的集合添加元素22
(integer) 1
127.0.0.1:6379> SMEMBERS mySets  //列出key=mySets的集合的所有元素
1) "11"
2) "22"
127.0.0.1:6379>
5.ZSet 有序集合(有序集合類(lèi)型)

無(wú)序集合

  • 元素不能重復(fù),如果重復(fù)就會(huì)覆蓋。
  • 每個(gè)元素會(huì)關(guān)聯(lián)一個(gè)double類(lèi)型的分?jǐn)?shù)。根據(jù)這個(gè)分?jǐn)?shù)來(lái)排序。

常用命令如下:
SADD key score member : 添加一個(gè)元素。
SMEMBERS key :列出集合的所有元素。
ZRANGE key start stop [WITHSCORE]:列出集合的元素, 寫(xiě)了WITHSCORE參數(shù),也會(huì)列出分?jǐn)?shù),按小到大的順序。

127.0.0.1:6379> ZADD myZset 1 t1  //向key=myZset的集合添加元素t1 ,分?jǐn)?shù)=1
(integer) 1
127.0.0.1:6379> ZADD myZset 2 t2 //向key=myZset的集合添加元素t2 ,分?jǐn)?shù)=2
(integer) 1
127.0.0.1:6379> ZRANGE myZset 0 10 //獲取范圍0~10的元素
1) "t1"
2) "t2"
127.0.0.1:6379> ZRANGE myZset 0 10 WITHSCORES //獲取范圍0~10的元素,包含分?jǐn)?shù)
1) "t1"
2) "1"
3) "t2"
4) "2"
127.0.0.1:6379> ZADD myZset 1 t3   //向key=myZset的集合添加元素t3 ,分?jǐn)?shù)=1
(integer) 1
127.0.0.1:6379> ZRANGE myZset 0 10 WITHSCORES //獲取范圍0~10的元素,包含分?jǐn)?shù)
1) "t1"
2) "1"
3) "t3"
4) "1"
5) "t2"
6) "2"
127.0.0.1:6379>

兩種擴(kuò)展類(lèi)型:Bitmaps , HyperLogLogs。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容