.env 配置連接
REDIS_DB=[{"host":"10.0.11.10","port":6379},{"host":"10.0.11.10","port":6378},{"host":"10.0.11.11","port":6379},{"host":"10.0.11.10","port":6378}]
使用ioredis庫進行連接
import Redis from 'ioredis'; //創建集群連接 let redis; const redisConfig = process.env.REDIS_DB; if (redisConfig) { const redisNodes = JSON.parse(redisConfig); const prefix = `${process.env.REDIS_PREFIX || 'nc_'}`;
//多於一個節點,創建集群連接 if (redisNodes.length > 1) { redis = new Redis.Cluster(redisNodes, { redisOptions: { password: null, } }); } // 如果只配置一個,那么認為是單節點連接 else if (redisNodes.length === 1) { redis = new Redis(`redis://${redisNodes[0].host}:${redisNodes[0].port}/0`, { keyPrefix: prefix, }); } else { throw ('redis 配置錯誤') } } else { throw ('redis 配置錯誤') }
Cluster配置項
redisOptions:{
db:Number,
keyPrefix:String,
password:String
.
.
.
}
等等,可以轉到Cluster的定義看。