namespace WIDESEAWCS_RedisService.Options { public class RedisOptions { public bool Enabled { get; set; } = true; public string ConnectionString { get; set; } = "127.0.0.1:6379,defaultDatabase=0,connectTimeout=5000,abortConnect=false"; public string InstanceName { get; set; } = "WIDESEAWCS:"; public int DefaultDatabase { get; set; } = 0; public bool EnableSentinel { get; set; } = false; public string SentinelMasterName { get; set; } = "mymaster"; public List SentinelEndpoints { get; set; } = new(); public int PoolSize { get; set; } = 10; public int ConnectRetry { get; set; } = 3; public string SerializerType { get; set; } = "Newtonsoft"; public bool FallbackToMemory { get; set; } = true; public string KeyPrefix { get; set; } = "wcs:"; /// /// 是否启用L1内存缓存层。禁用后只使用Redis,适用于需要外部修改Redis数据的场景 /// public bool EnableL1Cache { get; set; } = true; /// /// 是否启用Redis到内存缓存的自动同步 /// public bool EnableAutoSync { get; set; } = true; /// /// 自动同步间隔时间(秒),默认30秒 /// public int SyncIntervalSeconds { get; set; } = 30; /// /// 同步时单次批量获取的Redis key数量上限,防止一次扫描过多key /// public int SyncBatchSize { get; set; } = 1000; public MonitoringOptions Monitoring { get; set; } = new(); public EvictionOptions Eviction { get; set; } = new(); } public class MonitoringOptions { public bool Enabled { get; set; } = false; public int SlowLogThresholdMs { get; set; } = 100; public int HealthCheckIntervalSeconds { get; set; } = 30; } public class EvictionOptions { public int DefaultExpirationSeconds { get; set; } = 3600; public string MaxMemoryPolicy { get; set; } = "allkeys-lru"; } }