0. 平台背景
cengos 7.8
gcc 4.8.5
1. 下载redis
http://www.redis.cn/download.html
目前最新版本为6.0.6,也是此次demo所使用的版本。
2. 安装redis服务
- 安装依赖
yum install -y tcl
- 编译安装
make && make test && make install
注:
1. 可能会报错 jemalloc/jemalloc.h:没有那个文件或目录,则替换第一个make 为 make MALLOC=libc
2. 如果要指定自己的安装路径使用,比如:
make install PREFIX=/usr/local/redis
- 测试安装状态
系统默认安装到/usr/local/bin下面,如果此目录没有加载到PATH中,则需要手动添加。
redis-server
启动redis服务,查看是否安装正常(出现一个图形则正常安装)。
重复以上步骤,安装到三台机器,最终集群方式为6个实例,三主三从。
3. 配置集群
- 创建配置目录
/etc/redis(存放redis的配置文件)
/var/redis/7001(存放redis的持久化文件)
- 修改配置文件
在解压目录下,拷贝redis.conf到/etc/redis/7001.conf
修改文件:
port 7001
cluster-enabled yes
#集群节点配置文件
cluster-config-file /etc/redis-cluster/node-7001.conf
cluster-node-timeout 15000
#守护
daemonize yes
pidfile /var/run/redis_7001.pid
dir /var/redis/7001
logfile /var/log/redis/7001.log
#绑定地址
bind 0.0.0.0
#持久化类型
appendonly yes
#配置密码
requirepass redis123
#集群节点密码
masterauth redis123
注:参考以上方法,配置6个节点。
4. 创建启动服务
创建服务文件 vim /etc/systemd/system/redis-7001.service
文件内容:
[Unit]
Description=The redis-cluster-server-7001 Process Manager
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/7001.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载 systemctl daemon-reload
启动服务 systemctl start redis-7001
查看服务状态 systemctl status redis-7001
设置开机启动 systemctl enable redis-7001
注:参考以上方法,启动所有服务。
5. 添加防火墙规则(未开启防火墙忽略)
# 查看防火墙状态
systemctl status firewalld
# 查看已经开放的端口
firewall-cmd --list-ports
# 开放端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7001/tcp --permanent
firewall-cmd --zone=public --add-port=7002/tcp --permanent
firewall-cmd --zone=public --add-port=7003/tcp --permanent
firewall-cmd --zone=public --add-port=7004/tcp --permanent
firewall-cmd --zone=public --add-port=7005/tcp --permanent
# 重新加载配置
firewall-cmd --reload
# 查看端口开放状态
firewall-cmd --list-ports
6. 创建集群
redis5以后不适用ruby创建集群。
此时已有6个redis服务启动
#redis-cli -a redis123 --cluster create 172.17.101.55:7001 172.17.101.55:7002 172.17.101.56:7003 172.17.101.56:7004 172.17.101.57:7005 172.17.101.57:7006 --cluster-replicas 1
--cluster-replicas 1 参数表示希望每个主服务器都有一个从服务器。通过该方式创建的带有从节点的机器不能够自己手动指定主节点,Redis集群会尽量把主从服务器分配在不同机器上。
over!