Prerequire
1、操作系统版本: CentOS7;
2、Redis 版本:5.0.5,cluster默认集成在redis包中;
3、cluster集群的部署方式为:9台redis机器上分别以cluster模式运行9个redis服务,
10.8.23.107;10.8.23.108;10.8.23.109;10.8.32.104;10.8.32.105;10.8.32.106;10.8.32.107;10.8.32.109;10.8.32.111
4、如无特殊说明下载文件总是放在/usr/local/src、安装目录总是在/app/redis、日志目录总是在/app/redis/logs、数据目录/data/redis。
一、初始设置:
1.1、相关内核参数
#设置内存 overcommit 总是允许分配内存
sysctl -a 2>/dev/null |grep overcommit_memory
vm.overcommit_memory = 1
#禁用透明大页
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
#使用命令查看时,如果输出结果为[always]表示透明大页启用了。[never]表示透明大页禁用、[madvise]表示只在MADV_HUGEPAGE标志的VMA中使用THP
#增加somaxconn 内核参数
# +该参数需要大于redis.conf配置文件中tcp-backlog 的设置
cat /proc/sys/net/core/somaxconn
65535
注:内核参数设置可以基于文件然后systctl -p,也可使用sysctl -w key=value,这里不再详述
1.2、账号设置
groupadd nobody
useradd -g redis -s /sbin/nologin nobody
二、安装配置
2.1、安装redis
cd /usr/local/src/
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxvf redis-5.0.5.tar.gz && cd redis-5.0.5
make
make PREFIX=/app/redis install
2.2、配置redis
#设置配置目录
mkdir -p /app/redis/conf
#设置日志目录
mkdir -p /app/redis/logs/
#设置持久化数据目录
mkdir -p /data/redis
#复制redis模板配置
cp /usr/local/src/redis-5.0.5/redis.conf /app/redis/conf/
#以下仅列出部分配置信息,详细信息请参见配置说明
port 6379
bind 0.0.0.0
supervised systemd
daemonize yes
protected-mode no
cluster-enabled yes
pidfile /var/run/redis.pid
logfile "/app/redis/logs/redis.log"
cluster-config-file /app/redis/conf/nodes.conf
dir /data/redis
cluster-node-timeout 5000
masterauth redis123456
requirepass redis123456
maxclients 50000
save ""
appendonly yes
cluster-require-full-coverage no
no-appendfsync-on-rewrite yes
##############rename command##########
rename-command KEYS "NYKJKEYS"
rename-command FLUSHALL "NYKJFLUSHALL"
rename-command FLUSHDB "NYKJFLUSHDB"
2.3、redis启动脚本及开机启动 /etc/systemd/system/redis.service
#redis systemd启动脚本
[Unit]
Description=Redis 5.0.5
After=network.target
[Service]
Type=simple
PIDFile=/var/run/redis.pid
LimitNOFILE=65535
ExecStart=/app/redis/bin/redis-server /app/redis/conf/redis.conf --daemonize no
ExecReload=/bin/kill -HUP $MAINPID
User=nobody
[Install]
WantedBy=multi-user.target
#设置文件权限
chown -R nobody.nobody /app/redis /app/redis/logs /data/redis
#设置开机启动
systemctl enable redis
systemctl start redis
2.4、redis cluster搭建
/app/redis/bin/redis-cli -a redis123456 --cluster create 10.8.23.62:6379 10.8.23.63:6379 10.8.31.70:6379 10.8.31.71:6379 10.8.31.72:6379 10.8.31.73:6379 --cluster-replicas 1