Redis的五種數據類型


Redis-五種數據類型

  

對於Redis來說,它只能存儲五種基本數據類型,

在之前的版本中都是String、Hash、List、SortedSet(zSet)、Map

而現在的新版本中String、Hash、List、SortedSet(zSet)、Set

 

 

一、字符串String ----String  Key-Value

  字符串是Redis中最常用的類型,是一個由字節組成的序列,它在Redis中是二進制安全的,這便意味着該類型可以接受任何格式的數據。

Value最多可以容納的數據長度為512MB。

set key value 

往key中存入一個值(value)

get key  

獲取鍵為key的值

  注意:redis中的Key和Value時區分大小寫的,命令不區分大小寫, redis是單線程 不適合存儲大容量的數據

  incr key      ---對應的value 自增1,如果沒有這個key值 自動給你創建創建 並賦值為1

  decr key     ---對應的value 自減1

    注意:自增的value是可以轉成數字的

 

二、散列Hash-------key-filed-value

  相當於是一個key中存在多個map。Redis中的散列可以看成具有String key和String value的map容器,可以將多個

key-value存儲到一個key中。每一個Hash可以存儲4294967295個鍵值對。

hset  key  filed value 

  設置值

hget  key filed

  獲取值

 

 

三、集合Set

  Redis的集合是無序不可重復的,此處的無序是數據不能重復。和列表一樣,在執行插入和刪除以及判斷是否存在某元素時,效率是很高的。集合最大的優勢在於可以進行交集並集差集操作。Set可包含的最大元素數量是4294967295。

  應用場景:1.利用交集求共同好友。2.利用唯一性,可以統計訪問網站的所有獨立IP。3.好友推薦的時候根據tag求交集,大於某個threshold(臨界值的)就可以推薦。

 

 

四、列表List

  Redis的列表允許用戶從序列的兩端推入或者彈出元素,列表由多個字符串值組成的有序可重復的序列,是鏈表結構,所以向列表兩端添加元素的時間復雜度為0(1),獲取越接近兩端的元素速度就越快。這意味着即使是一個有幾千萬個元素的列表,獲取頭部或尾部的10條記錄也是極快的。List中可以包含的最大元素數量是4294967295。

  應用場景:1.最新消息排行榜。2.消息隊列,以完成多程序之間的消息交換。可以用push操作將任務存在list中(生產者),然后線程在用pop操作將任務取出進行執行。(消費者)

List有順序可重復

Ipush list 1 2 3 4  從左添加元素

rpush list 1 2 3 4  從右添加元素

Irange list 0 -1 (從0到-1元素查看:也就表示查看所有)

Ipop list (從左邊取,刪除)

rpop list(從右邊去,刪除)

 

 

五、SortedSet(zSet)

  有順序,不能重復!!此處的不能重復是索引為唯一的,數據卻可以重復。和Set很像,都是字符串的集合,都不允許重復的成員出現在一個set中。他們之間差別在於有序集合中每一個成員都會有一個分數(score)與之關聯,Redis正是通過分數來為集合中的成員進行從小到大的排序。盡管有序集合中的成員必須是衛衣的,但是分數(score)卻可以重復。

  應用場景:可以用於一個大型在線游戲的積分排行榜,每當玩家的分數發生變化時,可以執行zadd更新玩家分數(score),此后在通過zrange獲取幾分top ten的用戶信息。

適合做排行榜,排序需要一個分數屬性

zadd zset1 9 a 8 c 10 d 1 e   (添加元素 zadd key score member )

  (ZRANGE key start stop [WITHSCORES])(查看所有元素:zrange key  0  -1  withscores)

  如果要查看分數,加上withscores.

  zrange zset1 0 -1 (從小到大)

  zrevrange zset1 0 -1 (從大到小)

  zincrby zset2 score member (對元素member 增加 score)

 1 127.0.0.1:6379> zadd zset1 8 a 4 b 5 c 1 d
 2 (integer) 4
 3 127.0.0.1:6379> zrange zset1 0 -1 
 4 1) "d"
 5 2) "b"
 6 3) "c"
 7 4) "a"
 8 127.0.0.1:6379> zadd zset1 9 a
 9 (integer) 0
10 127.0.0.1:6379> zrange zset1 0 -1 
11 1) "d"
12 2) "b"
13 3) "c"
14 4) "a"
15 127.0.0.1:6379> zrange zset1 0 -1 withscores
16 1) "d"
17 2) "1"
18 3) "b"
19 4) "4"
20 5) "c"
21 6) "5"
22 7) "a"
23 8) "9"
24 127.0.0.1:6379> zrevrange zset1 0 -1
25 1) "a"
26 2) "c"
27 3) "b"
28 4) "d"
29 127.0.0.1:6379> zincrby zset1 1 a
30 "10"
31 127.0.0.1:6379> zrevrange zset1 0 -1 withscores
32 1) "a"
33 2) "10"
34 3) "c"
35 4) "5"
36 5) "b"
37 6) "4"
38 7) "d"
39 8) "1"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM