2023-11-08 分类: 网站建设
事实上Redis的数据类型一直都是二进制安全的,几乎每一种数据类型都是可以用来存储流的。那为什么Redis 5.0要引用Stream数据类型呢? 具体如何使用?
在一般的编程概念里,流是一种主要用于优化内存的数据类型,它不需要一次性把大量数据,比如说大文件一次性读取到内存再处理,可以边读取边处理,这样可以用少量内存就可以处理大文件。
因此简单地说,流是Redis一种新的数据结构,不需要读取原有key的值,就可以在此key中添加新内容的数据类型。
Stream可以用更抽象的方式来记录数据,比如说日志。
Stream类型存储的不是一个字符串,而是多个键值对,比如:
XADD mystream * sensor-id 1234 temperature 19.8 > 1518951480106-0
代表往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
可以用 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的值范围,可以理解为取某个时间段的日志内容
> 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数据类型。
2.新的Redis模块ApI:Timers and Cluster ApI。
3.RDb 现在可存储 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实现。
8.更好的内存统计报告。
9.许多带有子命令的命令现在都有一个HELp子命令。
10.改进客户端经常连接断开时的性能
11.错误修复和改进。
12. 升级Jemalloc到5.1版
13. 引入 CLIENT UNbLOCK 和 CLIENT ID
14. 新增 LOLWUT 命令 http://antirez.com/news/123
15. 在不存在需要保持向后兼容性的地方,弃用 "slave" 术语
16. 网络层优化
17. Lua 相关的改进
18. 引入 Dynamic HZ 平衡CpU空闲时的使用率和响应性
19. 重构了Redis 核心代码,并进行多方面改进
详情: https://raw.githubusercontent.com/antirez/redis/5.0/00-RELEASENOTES
当前文章:新版redis特性以及Stream流数据类型使用的简单教程
路径分享:/news46/293046.html
成都网站建设公司_创新互联,为您提供网站改版、移动网站建设、网站内链、静态网站、云服务器、面包屑导航
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容