<antirez>8 hours agohttp://antirez.com/news/114Redis Streams 填补了列表、有序集合和发布/订阅之间的空白,用于建模消息序列或事件。该概念受 Kafka 消费者组以及用户关于事务日志风格数据类型的想法启发。实现使用基数树和列表包,以实现空间效率以及按 ID 或时间的索引访问。关键命令包括 XADD(添加条目)、XRANGE(范围查询)和 XREAD(从多个流中阻塞读取)。通过 MAXLEN 支持带上限的流,并可使用 '~' 进行可选的近似修剪。消费者组(正在进行中)允许多个客户端共享消息,并具有确认和重试功能。内存使用率低;RDB 加载速度快(例如,0.3 秒内加载 500 万条条目)。Streams 将在两个月内移植到 Redis 4.0 以用于生产环境。
<antirez>8 hours agohttp://antirez.com/news/92Amplitude 发表了一篇文章,介绍如何使用 Set 数据类型进行规模化分析,并解释了为何因开销问题而避免使用 Redis。构建自定义垂直解决方案提供了控制和调试方面的优势,但需要持续开发,如果原始开发者离开,可能会出现问题。Redis 已经为小型数据类型使用了内存高效的编码(例如,整数集合用于数值集合),但缺乏针对小型字符串集合的类似表示。Antirez 提出了一种新的哈希表设计,每个桶使用线性数组并具有高负载因子,以提高内存效率和缓存局部性。新设计必须处理增量重哈希、扫描和序列化,同时可能替代小型编码和通用哈希表。