Redis
Redis(Remote Dictionary Server)是一款开源的基于内存的键值对数据存储系统,支持字符串、列表、哈希、集合、有序集合等多种数据结构。常用于缓存、会话管理、消息队列、实时排行榜等场景。Redis以高性能、低延迟著称,支持数据持久化、主从复制及集群模式,广泛应用于互联网后端架构中以提升系统响应速度和吞吐能力。
核心事实
时间轴 (近 90 天)
Redis 集群固定使用 16384 个哈希槽,取模对象固定为 16384 而非当前服务器数量。
Redis 协议层面的 hash tag 机制通过将 key 中需要共槽的部分用花括号包裹,使哈希函数只计算花括号内的内容,从而保证同一用户的全部 key 落在同一个槽。
Dragonfly 是 Redis 协议的直接替代品,使用普通 ioredis 客户端只需改连接 URL 即可迁移。
Redis 集群的槽位分配使用 CRC16 哈希函数,而非 SHA 系列。
博主引用的对比数据显示 Dragonfly 的 QPS 达到 Redis 的 25 倍。
Pipeline 是 Redis 协议层面的批量提交机制,将多条命令一次性写入 TCP 连接,服务端按序执行后打包返回结果,但不等于事务,不保证原子性。
幂等设计保证同一请求ID的重复调用返回相同结果,而不会重复扣减库存或生成多笔订单;常见实现包括数据库唯一约束、Redis去重键(如SETNX)以及请求指纹比对。
常见 Checkpointer 实现包括 InMemorySaver(仅进程内有效,适合测试)和基于 SQLite/Postgres/Redis 的持久化实现(适合生产)。
在多实例部署时,nonce缓存需要共享存储(如Redis)或粘性路由,否则同一帧可能在不同实例上各被接受一次,形成防护缺口。
durable-harness 写入 World 接口,因此同一代理可以从一个 World 迁移到另一个而无需更改代码:在 Vercel 上使用 Vercel World,开发时使用本地文件,自托管时使用 Postgres、MongoDB、Redis 或 Turso。
还有 40 条时间轴事件
全部知识事实 (20)
Agent的记忆系统通常分为三个层次:工作记忆(当前对话上下文窗口)、短期记忆(近期交互历史)和长期记忆(通过向量数据库持久化存储)
80%已验证Dify的核心架构采用微服务设计,通过Docker Compose将API服务、Worker、Web前端、PostgreSQL、Redis和向量数据库等组件解耦部署
80%已验证企业级Agent系统通常会引入外部记忆模块(如向量数据库)来存储长期记忆,以突破上下文窗口限制
75%已验证WebSocket协议建立持久化双向通信通道,服务器可主动向客户端推送数据,延迟可低至毫秒级
70%已验证MongoDB是面向文档的NoSQL数据库,以JSON-like的BSON格式存储数据
70%已验证Session Service管理对话级别的短期记忆(消息历史、工具调用结果、中间推理状态),Memory Bank提供跨会话的长期记忆能力
65%已验证在Agent框架中,Checkpointing将当前执行状态序列化并持久化到外部存储(数据库或Redis),同时挂起执行线程,待人工输入后恢复
65%已验证RAGFlow依赖Elasticsearch(全文检索)、Redis(缓存)、MySQL(元数据存储)等多个服务
65%已验证Salvatore Sanfilippo于2009年创建了Redis项目,最初是为了解决他在开发实时Web分析系统LLOOGG时遇到的性能问题
65%已验证Redis所有命令在一个主线程中串行执行,采用单线程事件驱动架构
65%已验证RAGFlow基于Docker容器化部署,启动后运行五个容器:Redis、MinIO、MySQL、Elasticsearch和RAGFlow Server
65%已验证Celery的核心架构由Producer、Broker和Worker三个组件构成,Broker通常使用Redis或RabbitMQ
65%已验证LangGraph的长期存储支持多种后端,包括PostgreSQL用于结构化数据、Pinecone和Chroma等向量数据库用于语义检索、Redis用于高速缓存
65%待验证antirez stepped down as Redis maintainer in 2020
90%待验证防止重复扣费的幂等性实现方案包括数据库唯一约束、状态机检查、Redis分布式锁和乐观锁版本号
90%待验证Redis 6.0后引入了I/O多线程,但命令执行仍然是单线程的
90%待验证Redis的SCAN命令使用反向二进制迭代(reverse binary iteration)的游标推进算法
90%待验证Redis 7.0后将紧凑内存编码格式统一为listpack
90%待验证Redis在4.0版本(2017年)引入了模块系统(Modules API),允许第三方通过动态加载方式扩展自定义数据类型
90%待验证Redis此前在KEYS和SCAN命令中使用的是简单的glob风格模式匹配,仅支持*、?、[]等通配符
90%