2023-11-08 分類: 網(wǎng)站建設(shè)
事實上Redis的數(shù)據(jù)類型一直都是二進制安全的,幾乎每一種數(shù)據(jù)類型都是可以用來存儲流的。那為什么Redis 5.0要引用Stream數(shù)據(jù)類型呢? 具體如何使用?
在一般的編程概念里,流是一種主要用于優(yōu)化內(nèi)存的數(shù)據(jù)類型,它不需要一次性把大量數(shù)據(jù),比如說大文件一次性讀取到內(nèi)存再處理,可以邊讀取邊處理,這樣可以用少量內(nèi)存就可以處理大文件。
因此簡單地說,流是Redis一種新的數(shù)據(jù)結(jié)構(gòu),不需要讀取原有key的值,就可以在此key中添加新內(nèi)容的數(shù)據(jù)類型。
Stream可以用更抽象的方式來記錄數(shù)據(jù),比如說日志。
Stream類型存儲的不是一個字符串,而是多個鍵值對,比如:
XADD mystream * sensor-id 1234 temperature 19.8 > 1518951480106-0
代表往mystream添加新的數(shù)據(jù) { "sensor-id": 1234, "temperature": 19.8 }, *代表服務(wù)器端生成一個新的EntryID
1518951480106-0 是代表這組數(shù)據(jù)的EntryID值,可以理解為日志中的行號。1518951480106是當(dāng)前時間的毫秒值,0代表這一時侯的第幾個數(shù)據(jù)??梢杂肵LEN查看總數(shù)據(jù)個數(shù)。
> 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
可以用 XRANGE/XREVRANGE 來查找,- + 代表查找所有的。
> XRANGE mystream - + 1) 1) 1518951480106-0 2) 1) "sensor-id" 2) "1234" 3) "temperature" 4) "19.8" 2) 1) 1518951482479-0 2) 1) "sensor-id" 2) "9999" 3) "temperature" 4) "18.2"
可以指定EntryID的值范圍,可以理解為取某個時間段的日志內(nèi)容
> XRANGE mystream 1518951480106 1518951480107 1) 1) 1518951480106-0 2) 1) "sensor-id" 2) "1234" 3) "temperature" 4) "19.8"
可以只取前兩個
> XRANGE mystream - + COUNT 2 1) 1) 1519073278252-0 2) 1) "foo" 2) "value_1" 2) 1) 1519073279157-0 2) 1) "foo" 2) "value_2"
Redis流介紹 https://redis.io/topics/streams-intro
1.新的Stream數(shù)據(jù)類型。
2.新的Redis模塊ApI:Timers and Cluster ApI。
3.RDb 現(xiàn)在可存儲 LFU 和 LRU 信息
4.集群管理器從Ruby(redis-trib.rb)遷移到C。`redis-cli —cluster help`了解更多。
5.新sorted set命令:ZpOpMIN / MAX 和 (blocking variants)
6.升級 Active defragmentation V2。
7.增強HyperLogLog實現(xiàn)。
8.更好的內(nèi)存統(tǒng)計報告。
9.許多帶有子命令的命令現(xiàn)在都有一個HELp子命令。
10.改進客戶端經(jīng)常連接斷開時的性能
11.錯誤修復(fù)和改進。
12. 升級Jemalloc到5.1版
13. 引入 CLIENT UNbLOCK 和 CLIENT ID
14. 新增 LOLWUT 命令 http://antirez.com/news/123
15. 在不存在需要保持向后兼容性的地方,棄用 "slave" 術(shù)語
16. 網(wǎng)絡(luò)層優(yōu)化
17. Lua 相關(guān)的改進
18. 引入 Dynamic HZ 平衡CpU空閑時的使用率和響應(yīng)性
19. 重構(gòu)了Redis 核心代碼,并進行多方面改進
詳情: https://raw.githubusercontent.com/antirez/redis/5.0/00-RELEASENOTES
當(dāng)前文章:新版redis特性以及Stream流數(shù)據(jù)類型使用的簡單教程
路徑分享:http://muchs.cn/news46/293046.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、移動網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、云服務(wù)器、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容