62 lines
1.1 KiB
Bash
62 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# 集群配置参数
|
|
BASE_PORT=7001
|
|
NODE_COUNT=6
|
|
BASE_DIR=/tmp/redis_cluster_cluster/
|
|
|
|
# 创建工作目录
|
|
mkdir -pv $BASE_DIR
|
|
|
|
# 为每个节点生成配置
|
|
for i in $(seq 0 $((NODE_COUNT-1))); do
|
|
PORT=$((BASE_PORT + i))
|
|
NODE_DIR="node-$PORT"
|
|
|
|
echo "生成节点 $PORT 配置..."
|
|
mkdir -p $BASE_DIR/$NODE_DIR
|
|
|
|
cat > $BASE_DIR/$NODE_DIR/redis.conf << EOF
|
|
# Redis 集群节点 $PORT 配置
|
|
|
|
# 基本配置
|
|
port $PORT
|
|
bind 127.0.0.1
|
|
dir $BASE_DIR/$NODE_DIR
|
|
logfile "$BASE_DIR/$NODE_DIR/redis-$PORT.log"
|
|
pidfile "$BASE_DIR/$NODE_DIR/redis-$PORT.pid"
|
|
daemonize yes
|
|
|
|
# 集群配置
|
|
cluster-enabled yes
|
|
cluster-config-file nodes-$PORT.conf
|
|
cluster-node-timeout 15000
|
|
cluster-slave-validity-factor 10
|
|
cluster-migration-barrier 1
|
|
cluster-require-full-coverage yes
|
|
|
|
# 持久化配置
|
|
save 900 1
|
|
save 300 10
|
|
save 60 10000
|
|
appendonly yes
|
|
appendfilename "appendonly-$PORT.aof"
|
|
appendfsync everysec
|
|
|
|
# 内存配置
|
|
maxmemory 256mb
|
|
maxmemory-policy allkeys-lru
|
|
|
|
# 网络配置
|
|
tcp-keepalive 300
|
|
timeout 0
|
|
|
|
# 性能优化
|
|
tcp-backlog 511
|
|
databases 1
|
|
EOF
|
|
|
|
done
|
|
|
|
echo "配置文件生成完成!"
|
|
echo "节点目录: $BASE_DIR/node-*" |