docs/zh_cn/reference/redis-csc.md
从 6.0 版本开始,Redis 提供了客户端侧缓存功能,允许客户端以更快、更高效的方式在本地维护数据缓存。JuiceFS 完整支持该功能,可为元数据操作带来显著的性能提升。
Redis 客户端侧缓存(CSC)的工作方式如下:
CLIENT TRACKING ON BCAST 启用追踪模式这将减少网络流量、降低延迟并提高吞吐量。
JuiceFS 通过元数据 URL 中的以下选项支持 Redis CSC:
--meta-url="redis://localhost/1?client-cache=true" # 启用客户端侧缓存(始终使用 BCAST 模式)
--meta-url="redis://localhost/1?client-cache=true&client-cache-size=500" # 设置缓存大小(默认 12800)
--meta-url="redis://localhost/1?client-cache=true&client-cache-expire=60s" # 设置缓存过期时间(默认:60s)
client-cache:以 BCAST 模式启用客户端侧缓存(设置为除 "false" 以外的任意值)client-cache-size:最大缓存大小(默认:12800)client-cache-expire:缓存过期时间(默认:60s)client-cache-preload:挂载后预加载根目录下文件对象的数量(默认:0)启用客户端侧缓存后,JuiceFS 会缓存:
注意: Redis 客户端侧缓存需要 Redis 服务端版本 6.0 或更高。在旧版本 Redis 上使用该功能将导致错误。
当启用客户端侧缓存且设置了 client-cache-preload 时,JuiceFS 会在挂载后预加载根目录下文件对象的属性和目录项。这种懒惰预加载在后台进行,有助于:
预加载过程通过以下方式智能地优先处理最重要的 inode:
预加载过程在后台 goroutine 中运行,具有故障安全机制,不会阻塞或影响正常的文件系统操作。
JuiceFS 使用 BCAST 模式以保证简洁性和可靠性:
BCAST 模式提供了最简单的实现,同时确保所有客户端之间的缓存一致性。
如果在启用 CSC 的情况下遇到崩溃或不稳定问题:
client-cache-size 减小缓存大小client-cache 参数来禁用 CSCJuiceFS 为各种 Redis CSC 特定响应提供了健壮的错误处理,以确保在 Redis 因客户端追踪而发送意外响应格式时仍能稳定运行。