redis的五中數據集的操做

vString(字符串)

String是redis最基本的類型,你能夠理解成與Memcached如出一轍的類型,一個key對應一個value。redis

String類型是二進制安全的。意思是redis的string能夠包含任何數據。好比jpg圖片或者序列化的對象 。編程

String類型是Redis最基本的數據類型,一個鍵最大能存儲512MB。安全

Demobash

image.png

在以上Demo中咱們使用了 Redis 的 SET 和 GET 命令。服務器

vHash(哈希)

Redis hash 是一個鍵值對集合。數據結構

Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。app

Demoide


以上Demo中 hash 數據類型存儲了包含用戶腳本信息的用戶對象。 Demo中咱們使用了 Redis HMSET, HEGTALL 命令,cityhash 爲鍵值。優化

每一個 hash 能夠存儲 232 - 1鍵值對(40多億)。ui

127.0.0.1:6379> hmset city:name bj sh sz gd hz tj
OK
127.0.0.1:6379> hgetall  city:name
1) "bj"
2) "sh"
3) "sz"
4) "gd"
5) "hz"
6) "tj"

vList(列表)

Redis 列表是簡單的字符串列表,按照插入順序排序。你能夠添加一個元素導列表的頭部(左邊)或者尾部(右邊)。

Demo   展現list時,數據成倒敘,先進後出

127.0.0.1:6379> lpush  list list1 list2 list3
3
127.0.0.1:6379> lrange list 0 2
list3
list2
list1

列表最多可存儲 232 - 1元素 (4294967295, 每一個列表可存儲40多億)。

vSet(集合)

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

集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。

sadd 命令:添加一個string元素到,key對應的set集合中,成功返回1,若是元素以及在集合中返回0,key對應的set不存在返回錯誤。

sadd key member

127.0.0.1:6379> sadd sett  set1 set2
2
127.0.0.1:6379> smembers sett
set1
set2

以上Demo中 "BEIJING" 添加了兩次,但根據集合內元素的惟一性,第二次插入的元素將被忽略。返回0

集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。

vZset(sorted set:有序集合)

Redis zset 和 set 同樣也是string類型元素的集合,且不容許重複的成員。不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。

zset的成員是惟一的,但分數(score)卻能夠重複。

zadd 命令:添加元素到集合,元素在集合中存在則更新對應score

    在建立時指定數據的下標

127.0.0.1:6379> zadd zset 0  zset1 1 zset2 2  zset3
3
127.0.0.1:6379> zrangebyscore zset 0 3
zset1
zset2
zset3

Stream是什麼

在通常的編程概念裏,流是一種主要用於優化內存的數據類型,它不須要一次性把大量數據,好比說大文件一次性讀取到內存再處理,能夠邊讀取邊處理,這樣能夠用少許內存就能夠處理大文件。

所以簡單地說,流是Redis一種新的數據結構,不須要讀取原有key的值,就能夠在此key中添加新內容的數據類型。

Stream添加

Stream能夠用更抽象的方式來記錄數據,好比說日誌。

Stream類型存儲的不是一個字符串,而是多個鍵值對,好比:

XADD mystream * -id  temperature 
>

表明往mystream添加新的數據 { "sensor-id": 1234, "temperature": 19.8 }, *表明服務器端生成一個新的EntryID

1518951480106-0 是表明這組數據的EntryID值,能夠理解爲日誌中的行號。1518951480106是當前時間的毫秒值,0表明這一時侯的第幾個數據。能夠用XLEN查看總數據個數。

> XLEN mystream
(integer) 1

也能夠本身指定EntryID的值,如:

> XADD somestream 0-1 field value
0-1
> XADD somestream 0-2 foo bar
0-2

流是隻增不減的,因此若是entryid值比以前的小,則會報錯:

> XADD somestream 0-1 foo bar
(error) ERR The ID specified in XADD is equal or smaller than the target stream top item

Stream查詢

能夠用 XRANGE/XREVRANGE 來查找,- + 表明查找全部的。

> XRANGE mystream - +

能夠指定EntryID的值範圍,能夠理解爲取某個時間段的日誌內容

> XRANGE mystream 1518951480106 1518951480107
1) 1) 1518951480106-0
   2) 1) "sensor-id"
      2) "1234"
      3) "temperature"
      4) "19.8"

能夠只取前兩個

> XRANGE mystream - + COUNT 21) 1) 1519073278252-0   2) 1) "foo"      2) "value_1"2) 1) 1519073279157-0   2) 1) "foo"      2) "value_2"
相關文章
相關標籤/搜索