redis學習之數據類型

上面的文章,我們已經成功在本地搭建了redis以及集羣,接下來讓我們學習一下他的數據類型以及對數據的操作命令。

如果你沒有本地搭建,我推薦一個網站,是redis官方的測試平臺。http://try.redis.io/

我接下來爲了方便,也會使用這個平臺。

redis的數據類型分爲這麼幾種:String,hash,list,set以及zset(有序集合)

String

String是redis最基本的數據模型。我們可以存儲序列化的對象放入其中。String最大能存儲512M的數據

數據讀取命令:

適合場景:

單純key/value格式數據


Hash

hash存儲一個key-value的鍵值對集合,也正因爲這種特性,他非常適合存儲對象。

對比String的命令,他們之間只只在set和get前面填了個HM;

每個 hash 可以存儲 232 -1 鍵值對(40多億)。

適合場景:

對象信息,類似於用戶信息,裏面包括姓名,性別等


List

列表就無需說太多了,redis的數據存放都是有序的,我們可以隨意的向列表的左右兩側存放數據,

這是列表的存放(lpush:左側;rpush:右側):

我們可以查詢指定起止區間的數據,從左側開始(lrange):

取指定下標的數據:lindex key index

關於列表操作的命令還有很多,這裏暫且不講,我會寫在另一篇文章裏面。

適合場景:

消息隊列。利用Lists的push的操作,將任務存儲在list中,然後工作線程再用pop操作將任務取出進行執行。


SET

Redis 的 Set 是 string 類型的無序集合,唯一。

sadd 添加元素

smembers 查看所有元素

通過查詢,能看出來,確實時是無序的。

使用場景:

set類似list,特殊之處是set可以自動排重。

set還提供了某個成員是否在一個set內的接口,這個也是list沒有的。


zset

set的有序版,不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來爲集合中的成員進行從小到大的排序。

zadd key score value(添加元素)

ZRANGEBYSCORE key min max   (返回有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員)

適用場景:

sorted set的使用場景與set類似,區別是set不是自動有序的,而sorted set可以通過用戶額外提供一個優先級(score)的參數來爲成員排序,並且是插入有序的,即自動排序。

zset做帶權重的隊列,比如普通消息的score爲1,重要消息的score爲2,然後工作線程可以選擇按score的倒序來獲取工作任務。讓重要的任務優先執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章