.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的定義看。
