redis數據結構

  最近在項目中用到redis的地方不少,所以決定對redis做一個全面的學習。來記錄自己的redis知識點。所以可能一直會更新文章內容。

  Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API(官方介紹)。redis是現在主流的非關係型數據庫,而redis的集羣redis cluster也是主流分佈式緩存的解決方案之一。

首先來了解redis的有哪些數據結構吧,

Redis 數據類型分爲:字符串類型、散列類型(哈希類型)、列表類型、集合類型、有序集合類型。

1、=字符串類型

這個比較簡單,key裏面對應的是字符串類型,string 類型的值最大能存儲 512MB,使用場景挺多。

賦值命令:set ydmKey 123

取值命令:get ydmKey "123"

2、散列類型

散列類型也叫哈希類型。和java裏面的HashMap差不多。存儲在該類型中的對象可以是整型,也可以是字符串。使用場景上可以用來存儲對象信息,比如用戶信息。命令有所不同。

賦值命令:hset ydmkey name ydm

賦值命令:hset ydmkey age 26

賦值命令:hset ydmkey edu daxue

取值命令:hgetall ydmkey

1) "name"
2) "ydm"
3) "age"
4) "26"
5) "edu"
6) "daxue"

3、列表類型

redis的列表類型list是一個有序的字符串列表。實現的數據結構是一個鏈表。這個類型使用場景很多,比如可以用來保存博客粉絲列表,也可以保存聊天時的最新消息,還可以實現一個簡單的消息隊列,而這些都是由於它的數據結構決定的。

命令:lpush ydmtestList y

命令:lpush ydmtestList d

命令:lpush ydmtestList m

命令:lrange ydmtestList 0 10

1) "m"
2) "d"
3) "y"
 

  1. lpush+lpop=Stack(棧)

  2. lpush+rpop=Queue(隊列)

  3. lpush+ltrim=Capped Collection(有限集合)

  4. lpush+brpop=Message Queue(消息隊列)

4、集合

這裏的集合set中最大的特點就是數據是不重複的。當你需要存儲一堆不能重複的數據的時候,之前的列表類型list支持不了,而使用set就可以滿足你了。Set通常可以用來保存好友的列表。而集合還有取交集,並集和差集的操作,所以也可以使用到我們平時使用的軟件中的共同好友上。

常用命令:sadd:添加一個String原色到key對應的set集合中。成功返回1,如果元素已經在集合中返回0,,如果key對應的set不存在則返回錯誤。

smembers:返回集合中的所有的成員。 不存在的集合 key 被視爲空集合。

sunion:返回給定集合的並集。不存在的集合 key 被視爲空集。

 

5、有序集合

看名字就知道了這個集合和set的區別在於有序。Sort Set是中Set的基礎上添加了一個排序的功能,在添加值的時候多添加一個排序屬性score。可以應用在一些排行榜的功能上。排序屬性是double類型的。這樣在插入數據的時候就可以指定排序了。排序的值可以是一樣的。

 

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