Redis cluster部署摘要
节点拓扑
- prod-redis-01:10.10.76.1
- prod-redis-02:10.10.76.2
- prod-redis-03:10.10.76.3
- prod-redis-04:10.10.76.4
- prod-redis-05:10.10.76.5
- prod-redis-06:10.10.76.6
内核优化
sysctl -w vm.overcommit_memory=1目录规划
- /data/redis/DATA
- /data/redis/LOG
redis 安装
yum -y install yum install make gcc gcc-c++
id redis || useradd -u 6379 redis -s /sbin/nologin -M
export version=7.2.12
wget http://download.redis.io/releases/redis-${version}.tar.gz
tar axvf redis-${version}.tar.gz
cd redis-${version}
make distclean
make BUILD_TLS=no -j $(nproc --all)
make PREFIX=/usr/local/redis-${version} install
cd /usr/local/ && ln -svf redis-${version} redis配置redis
写入配置文件
cat >/etc/redis-cluster/redis.conf <<EOF
### GENERAL CONFIGURATION
bind 0.0.0.0
port 6379
requirepass "QIU@8848"
masterauth "QIU@8848"
daemonize no
supervised no
maxclients 100000
protected-mode no
dir "/data/redis/DATA"
loglevel notice
logfile "/data/redis/LOG/redis.log"
# 最大可使用的内存
maxmemory 12G
maxmemory-policy volatile-lru
# 开启AOF持久化
appendonly no
# 开启集群模式
cluster-enabled yes
# 集群节点配置文件
cluster-config-file "/etc/redis-cluster/nodes.conf"
# 集群超时时间设置
cluster-node-timeout 10000
EOF
写入systemd
cat >/usr/lib/systemd/system/redis-cluster.service<<EOF
[Unit]
Description=redis-server
After=network.target
[Service]
Type=simple
User=root
Group=root
TimeoutStopSec=0
Restart=always
ExecStart=/usr/local/redis/bin/redis-server /etc/redis-cluster/redis.conf --supervised systemd
ExecStop=/usr/local/redis/bin/redis-cli shutdown
OOMScoreAdjust=-900
UMask=0077
RuntimeDirectoryMode=2755
PrivateTmp=yes
LimitNOFILE=131070
PrivateDevices=yes
ProtectHome=yes
WorkingDirectory=/data/redis
[Install]
WantedBy=multi-user.target
EOF
在任意一台执行如下:
redis-cli -a QIU@8848 --cluster create 10.10.76.1:6379 \
10.10.76.2:6379 \
10.10.76.3:6379 \
10.10.76.4:6379 \
10.10.76.5:6379 \
10.10.76.6:6379 \
--cluster-replicas 1 3.2.5 Redis 测试
# 进入redis节点
redis-cli -h 10.10.76.1 -a QIU@8848
# 查看集群相关信息
cluster info
# 查看节点相关信息
cluster nodes