【Redis】笔记|第9节|Redis Stack扩展功能

Redis Stack 扩展功能笔记(基于 Redis 7)


一、Redis Stack 概述
  • 定位:Redis OSS + 扩展模块(JSON、搜索、布隆过滤器等),提供高级数据处理能力。
  • 核心模块
    • RedisJSON:原生 JSON 支持,支持路径查询和原子操作。
    • Search and Query:全文搜索(类似 ElasticSearch),支持复杂条件过滤。
    • Bloom Filter:高效判断元素是否存在(节省空间,有误判率)。
    • Cuckoo Filter:支持删除操作的布隆过滤器改进版。

二、核心扩展功能详解
  1. Redis JSON

    • 功能
      • 存储/查询 JSON 数据:JSON.SET user $ '{"name":"loulan"}'
      • 路径操作:JSON.GET user $.nameJSON.NUMINCRBY user $.age 2
      • 数组操作:JSON.ARRAPPEND user $.hobbies '"swimming"'
    • 优势
      • 二进制存储(高效省内存),性能媲美 MongoDB。
      • 与 Redis 生态(TTL、事务)无缝集成。
  2. Search and Query

    • 传统 SCAN 缺陷
      • 仅支持简单 Key 过滤:SCAN 0 MATCH k* COUNT 20(阻塞风险)。
    • RedisSearch 方案
      • 创建索引(支持 JSON/HASH):

    FT.CREATE productIndex ON JSON SCHEMA .name AS name TEXT .price AS price NUMERIC

      • 复杂查询(电商场景):

      FT.SEARCH productIndex "@name:HUAMET @price:[1000 5000]" RETURN 2 id name

  1. Bloom Filter

    • 原理:位数组 + 多哈希函数(空间高效,存在误判)。
    • 使用场景:缓存穿透防护(快速拦截无效请求)。
    • Redis 操作

    BF.RESERVE bf 0.01 1000 # 创建(容错率1%,容量1000)
    BF.ADD bf A # 添加元素
    BF.EXISTS bf a # 检查(返回1可能存在,0一定不存在)

  2. Cuckoo Filter

    • 改进点 :支持删除(CF.DEL),空间利用率更高。
    • 参数 :桶大小(BUCKETSIZE)影响误判率和性能(默认 2)。
    • 创建

    CF.RESERVE cf 1000 BUCKETSIZE 2 MAXITERATIONS 20


三、扩展模块集成
  1. 手动安装 :(Redis8不用安装,默认集成,或者用redis-stack:v7.4.0-v5的Docker镜像也集成了stack

    loadmodule /path/redisbloom.so

    • 验证:MODULE LIST
  1. Java 客户端调用

    • 通过 Lua 脚本执行扩展命令(需处理模块未加载异常):

    // 创建布隆过滤器
    String script = "return redis.call('BF.RESERVE', KEYS[1], '0.01','1000')";
    redisTemplate.execute(new DefaultRedisScript<>(script, String.class), keys);


四、Redis 8 新特性补充

基于 Redis 8 与 Redis Stack 的演进:

  1. 原生 JSON 性能优化
  2. 向量搜索(Vector Search)
    • 新增 RedisVL 模块,支持 AI 向量相似度搜索(集成 Hugging Face 模型)。
  3. 客户端缓存改进
    • 服务端辅助的客户端缓存(Tracking),减少网络开销。
  4. 持久化增强
    • 多线程 AOF 重写,提升大数据集持久化效率。

注意:Redis Stack 从 8 开始与 Redis OSS 版本号对齐,扩展模块更新更紧密。


参考Redis Stack 官方文档 | Redis 8 Release Notes

相关推荐
wp123_11 小时前
硬件元器件笔记|IPX8 防水 Type‑C 母座安费诺 124018802112A 与 TONEVEE TY48086‑24A 分析
c语言·开发语言·笔记
杨运交2 小时前
[060][调度模块]Redisson vs Redis 原生锁:两种分布式锁实现深度对比
数据库·redis·分布式
FungLeo2 小时前
Node 后端实战 · 列表查询到底怎么写?一个通用 DSL 封装,过滤分页排序一次搞定
数据库·node.js·serverless·dsl 封装·通用列表查询
mifengxing2 小时前
操作系统 文件系统
笔记·操作系统·计算机408
何以解忧,唯有..2 小时前
深入理解与应对:Redis 缓存雪崩、击穿、穿透三大经典问题
redis·缓存·mybatis
抓蛙师2 小时前
多租户 tenant_id SQL 注入漏洞分析与应急响应报告
数据库·sql
ACP广源盛139246256732 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 私有化部署下 GSV2221 视频转换芯片机遇分析
大数据·数据库·人工智能
无聊的菜鸟3 小时前
TMS320F2806X学习笔记(零)—— C2000、CCS、新建工程
笔记·mcu·c2000·f2806x
七牛开发者3 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
ljt27249606614 小时前
Compose笔记(八十三)--onVisibilityChanged
笔记