| 数据类型 | 操作或数据形态 | 改善情况 |
| Hash | 对新建、字段较多的 Hash 执行 HSET、HMSET | 吞吐量最高提高 104% |
| Hash | 多个键使用相同字段名 Schema | 内存占用最高降低 50% |
| Streams | XREADGROUP,COUNT 100 | 吞吐量最高提高 28% |
| Streams | 条目较多的 Stream | 内存占用最高降低 26% |
name、
email、
country 和
last_login。以往每个 Hash 都要单独保存一份字段名。HIMPORT 则用于高效批量导入具有相同字段的 Hash。客户端先准备一次字段集:HIMPORT PREPARE user-profile name email country last_login
HIMPORT SET user:1 user-profile "Alice" "alice@example.com" "UK" "2026-07-14" HIMPORT SET user:2 user-profile "Bob" "bob@example.com" "US" "2026-07-14"
HIMPORT。in、
nin 和过滤条件取反,也涵盖字符串、数组、对象及节点列表操作。字符串函数包括
match()、
search() 和
concat();数组函数包括
first()、
last()、
append() 和
index()。聚合函数提供
min()、
max()、
avg()、
sum()、
stddev(),还增加了
length()、
count()、
keys()、
value() 等函数。JSON.GET key '$.price * 0.8' JSON.GET key '$.arr1.avg()' JSON.GET key 'count($.items[?@.price > 10])'
XREAD 和
XREADGROUP 原有的
COUNT 限制分别作用于每个 Stream。一次读取多个 Stream,或者条目本身较大时,总响应仍可能超出预期。MAXCOUNT 和
MAXSIZE:前者限制所有 Stream 合计返回的消息数量,后者限制整体响应的字节大小。XREAD COUNT 100 MAXCOUNT 200 STREAMS stream:1 stream:2 stream:3 0 0 0
SINTERCARD,8.10 又增加了并集与差集的对应操作:SUNIONCARD numkeys key [key ...] [APPROX] [LIMIT limit] SDIFFCARD numkeys key [key ...] [LIMIT limit]
SUNIONCARD 返回并集的基数,
SDIFFCARD 返回第一个集合减去后续集合后的基数。应用因此不必为了计数传回大量成员,也不必先创建临时 Set。SUNIONCARD 还可以通过
APPROX 使用基于 HyperLogLog 的快速估算,其标准误差为 0.81%。LMOVE、
BLMOVE 已经能够在两个 List 之间原子移动单个元素,8.10 则引入批量形式:LMOVEM source destination <LEFT|RIGHT> <LEFT|RIGHT> [<COUNT|EXACTLY> count <OBO|BULK>] BLMOVEM source destination <LEFT|RIGHT> <LEFT|RIGHT> timeout [<COUNT|EXACTLY> count <OBO|BULK>]
COUNT 表示最多移动指定数量的元素;
EXACTLY 则要求可用元素达到指定数量,才移动整批。应用还可以选择逐个移动的
OBO 顺序,或保留所移动元素相对顺序的
BULK 模式。TS.MRANGE 按时间序列组织返回结果,需要时间戳对齐的应用还要在客户端重新整理。Redis 8.10 新增
TS.NRANGE 和
TS.NREVRANGE,对明确指定的一组序列查询,并按时间戳组织结果:TS.NRANGE 5 {ACMZ}:open {ACMZ}:high {ACMZ}:low
{ACMZ}:close {ACMZ}:volume
<fromTimestamp> <toTimestamp>
TS.READ 提供可选阻塞读取:TS.READ key timestamp [BLOCK milliseconds min_count] [MAX_COUNT max_count]
TS.MRANGE 和
TS.MREVRANGE 可能返回满足标签过滤、但在指定时间范围内没有样本的序列。8.10 增加
EXCLUDEEMPTY:TS.MRANGE - 500 WITHLABELS EXCLUDEEMPTY FILTER s=1
fork,同一节点上的多个分片如果同时执行,CPU 和内存用量会出现峰值,影响工作负载,甚至造成备份失败。BACKUP 命令族提供增量备份与恢复。各分片不必同时创建快照,可以错开执行,同时形成协调一致的备份过程。BASE 开始。在备份保持打开期间,Redis 将后续写入记录到增量
INCR AOF 文件中。封存备份时,RDB、增量 AOF 和 Manifest 一起构成完整备份,表示备份窗口结束时的数据集状态。fork。因此,即便各分片在不同时间生成了基础快照,也能够在结束时协调封存,降低同一节点多个分片同时制造资源峰值的压力。preload-file 启动选项可以加载已封存备份的 Manifest,也可以加载独立 RDB 文件。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026953/viewspace-3186726/ ,如需转载,请注明出处,否则将追究法律责任。