Redis 示例
Redis 示例 YAML 配置示例。
Redis
以下是单实例示例。singleton、sentinel、cluster 三种连接模式互斥;多实例则使用复数形式 singletons、sentinels 或 clusters,并通过 default-name 选择默认实例。
spring:
mvc:
# Redis 序列化实现选择;可用 jackson 或 gson,属于 Spring 属性。
converters:
preferred-json-mapper: jackson
lodsve:
redis:
# 动态多实例时可指定默认连接名。
default-name: primary
ssl: false
timeout: 2s
client-name: lodsve-app
singleton:
host: ${REDIS_HOST:127.0.0.1}
port: 6379
password: ${REDIS_PASSWORD:}
database: 0
# Cache 名称到 TTL 的映射,单位秒;未匹配时使用 default-expiration。
key-ttl:
shortCache: 60
# 默认缓存 TTL,单位秒;0 表示永久有效。
default-expiration: 0
# Jedis/Lettuce 连接池配置,按项目实际使用的客户端设置对应分支。
jedis:
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: -1ms
time-between-eviction-runs: 60s
lettuce:
share-native-connection: true
shutdown-timeout: 100ms
pool:
max-idle: 8
min-idle: 0
max-active: 8
max-wait: -1ms
cluster:
refresh:
period: 30s
adaptive: true
哨兵模式字段为 sentinel.master/nodes/password/sentinel-password/database;集群模式字段为 cluster.nodes/password/max-redirects。多数据源映射的每个实例对象使用相同字段结构。客户端池字段为 max-idle、min-idle、max-active、max-wait、time-between-eviction-runs。
多实例配置示例如下;具体使用 singletons、sentinels 或 clusters 中的一种,分别和单实例、哨兵或集群字段一致:
lodsve:
redis:
default-name: cache
singletons:
cache:
host: ${REDIS_HOST:127.0.0.1}
port: 6379
password: ${REDIS_PASSWORD:}
database: 0
哨兵连接可将 singleton 替换为 sentinel,提供 master、nodes、password、sentinel-password 和 database;集群连接使用 cluster.nodes、password、max-redirects。这些连接模式不可在同一实例配置中混用。
lodsve:
redis:
sentinel:
# Sentinel 监控的主节点名称。
master: mymaster
nodes: [${REDIS_SENTINEL_1:127.0.0.1:26379}, ${REDIS_SENTINEL_2:127.0.0.1:26380}]
# Redis 数据节点密码和 Sentinel 自身密码是两个独立属性。
password: ${REDIS_PASSWORD:}
sentinel-password: ${REDIS_SENTINEL_PASSWORD:}
database: 0
lodsve:
redis:
cluster:
# 至少配置一个 host:port 节点。
nodes: [${REDIS_NODE_1:127.0.0.1:6379}, ${REDIS_NODE_2:127.0.0.1:6380}]
password: ${REDIS_PASSWORD:}
max-redirects: 5
