必须启用Redis作为Dify外部缓存后端以实现毫秒级响应、支撑高并发并避免数据库瓶颈;需验证Redis服务连通性,配置.env中REDIS_HOST、REDIS_PORT、CACHE_BACKEND=redis等参数,设置REDIS_DEFAULT_TTL及maxmemory策略,并通过redis-cli monitor或X-Cache响应头验证缓存命中。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中实现毫秒级响应、支撑高并发请求并避免数据库成为瓶颈,必须将Redis作为外部缓存后端启用,否则所有读请求都会直击数据库,QPS超过300后响应延迟会陡增。
确认Redis服务已就绪并可被Dify访问
在终端执行 redis-cli -h 127.0.0.1 -p 6379 ping,返回 PONG 表示服务在线;若报错 Connection refused,需先启动 Redis:sudo service redis-server start。
生产环境必须使用带密码认证的Redis实例,且确保Dify所在服务器能通过网络访问该地址和端口——【防火墙未放行6379端口将导致Dify启动时连接超时失败】。
配置Dify使用Redis作为缓存后端
编辑项目根目录下的 .env 文件,添加或修改以下参数:
REDIS_HOST=127.0.0.1REDIS_PORT=6379REDIS_DB=0REDIS_PASSWORD=yourpasswordREDIS_USE_SSL=FalseCACHE_BACKEND=redisENABLE_CACHE=true
注意:若Redis未设密码,必须删去 REDIS_PASSWORD 行或留空,否则连接会因认证失败而中断;CACHE_BACKEND=redis 是启用缓存的开关,缺省值为 memory,不改此项等于没配。
验证缓存是否真正生效
方法一:实时监听缓存操作
新开终端窗口,运行 redis-cli monitor | grep -E "(SET|GET) \"cache:",然后在浏览器中反复刷新工作流列表页。若看到类似 "SET" "cache:workflow:list:user_abc" "{...}" "EX" "300" 的输出,说明缓存写入成功且设置了5分钟过期。
方法二:检查命中率
调用高频接口(如 GET /api/v1/workflows)两次,观察响应头中的 X-Cache: HIT 字段是否出现;未命中时该字段为 MISS 或缺失。连续三次 HIT 即可确认缓存链路打通。
设置合理的缓存TTL与淘汰策略
第一步:在 .env 中添加默认过期时间REDIS_DEFAULT_TTL=300(单位为秒,对应5分钟)
第二步:登录Redis CLI,执行以下命令防止内存无限制增长CONFIG SET maxmemory 2gbCONFIG SET maxmemory-policy allkeys-lru
这一步强制Redis在内存达2GB时自动淘汰最少使用的键;若不设策略,Dify持续写入缓存会导致Redis触发 OOM command not allowed when used memory > 'maxmemory' 错误,整个缓存层瘫痪。
第三步:针对不同数据类型精细化设置TTL
插件缓存建议5分钟(plugin_service:latest_plugin:),API限流键建议60秒(rate_limit:),数据集索引状态可设为3600秒——粒度越细,缓存穿透率越低。



















