|NO.Z.00061|——————————|BigDataEnd|——|Hadoop&Redis.V06|——|Redis.v06|RedisDB结构.v06|结构7种type.v04|
一、流对象
### --- 流对象
~~~ stream主要由:消息、生产者、消费者和消费组构成。
~~~ Redis Stream的底层主要使用了listpack(紧凑列表)和Rax树(基数树)。

### --- listpack
~~~ listpack表示一个字符串列表的序列化,listpack可用于存储字符串或整数。
~~~ 用于存储stream的消息内容。
二、结构如下图:

### --- Rax树
~~~ Rax 是一个有序字典树 (基数树 Radix Tree)按照
~~~ key 的字典序排列支持快速地定位插入和删除操作。
~~~ Rax 被用在 Redis Stream 结构里面用于存储消息队列,
~~~ 在 Stream 里面消息 ID 的前缀是时间戳 + 序号,这样的消息可以理解为时间序列消息。
~~~ 使用 Rax 结构 进行存储就可以快速地根据消息 ID 定位到具体的消息,
~~~ 然后继续遍历指定消息 之后的所有消息。
### --- 应用场景:
~~~ stream的底层实现


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号