环境介绍:
操作系统:中标麒麟6.0
redis最新稳定版4.0.6
在这里我们搭建的是一个1主3从的redis+3个哨兵集群的环境,由于是在一台物理机上,所有我们用端口区分。
主节点master物理机IP:192.168.150.129 端口:7000
从节点slave1 物理机IP:192.168.150.129 端口:7001 哨兵sentinel1端口:26301
从节点slave2物理机IP:192.168.150.129 端口:7002 哨兵sentinel2端口:26302
从节点slave3物理机IP:192.168.150.129 端口:7003 哨兵sentinel2端口:26303
一、下载安装
依赖安装
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install
下载地址:https://redis.io/download
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
$ tar xzf redis-4.0.6.tar.gz
$ cd redis-4.0.6
$ make
$ mkdir -p /usr/local/redis
$ make PREFIX=/usr/local/redis install
二、复制文件
进入redis所在目录
创建7000、7001、7002、7003目录,分别将安装目录下的redis.conf、sentinel.conf 拷贝到这四个目录下。
主节点
mkdir -p /usr/local/redis/7000/data && mkdir -p /usr/local/redis/7000/log && cp redis.conf /usr/local/redis/7000/redis7000.conf
从节点和哨兵
mkdir -p /usr/local/redis/7001/data && mkdir -p /usr/local/redis/7001/log && mkdir -p /usr/local/redis/7001/run/tmp && cp redis.conf /usr/local/redis/7001/redis7001.conf && cp sentinel.conf /usr/local/redis/7001/sentinel26301.conf
mkdir -p /usr/local/redis/7002/data && mkdir -p /usr/local/redis/7002/log && mkdir -p /usr/local/redis/7002/run/tmp && cp redis.conf /usr/local/redis/7002/redis7002.conf && cp sentinel.conf /usr/local/redis/7002/sentinel26302.conf
mkdir -p /usr/local/redis/7003/data && mkdir -p /usr/local/redis/7003/log && mkdir -p /usr/local/redis/7003/run/tmp && cp redis.conf /usr/local/redis/7003/redis7003.conf && cp sentinel.conf /usr/local/redis/7003/sentinel26303.conf
三、设置内存分配策略(可选,根据服务器的实际情况进行设置)
/proc/sys/vm/overcommit_memory
可选值:0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
四、开启redis端口,修改防火墙配置文件(麒麟系统防护墙娃设置有问题)
vi /etc/sysconfig/iptables
加入端口配置
vi /etc/sysconfig/iptables
加入端口配置
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26301 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26302 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport26303 -j ACCEPT
重新加载规则
service iptables restart
五、配置redis.config文件
1、主节点master的配置文件redis7000.conf:
# vim /usr/local/redis/7000/redis7000.conf
# 注释以下内容开启远程访问
# bind 127.0.0.1
# Redis使用后台模式
daemonize yes
# 关闭保护模式
protected-mode no
# 修改启动端口为6379
port 7000
# 修改pidfile指向路径
pidfile /usr/local/redis/7000/redis_7000.pid
#日志文件
logfile " /usr/local/redis/7000/log/7000.log"
#数据库文件名
dbfilename dump7000.rdb
#数据库文存放目录
dir /usr/local/redis/7000/data
# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志
tcp-backlog 511
#开启快照
appendonly yes
启动主节点
/usr/local/redis/bin/redis-server /usr/local/redis/7000/redis7000.conf
测试是否成功
2、从节点slave1的配置文件redis7001.conf :
# vim /usr/local/redis/7001/redis7001.conf
# 注释以下内容开启远程访问
# bind 127.0.0.1
# Redis使用后台模式
daemonize yes
# 关闭保护模式
protected-mode no
# 修改启动端口为6379
port 7001
# 修改pidfile指向路径
pidfile /usr/local/redis/7001/redis_7001.pid
#日志文件
logfile " /usr/local/redis/7001/log/7001.log"
#数据库文件名
dbfilename dump7001.rdb
#数据库文存放目录
dir /usr/local/redis/7001/data
# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志
tcp-backlog 511
#开启快照
appendonly yes
#主节点配置
slaveof 127.0.0.1 7000
启动从节点
/usr/local/redis/bin/redis-server /usr/local/redis/7001/redis7001.conf
测试是否成功
3、从节点slave2的配置文件redis7002.conf:
# 注释以下内容开启远程访问
# bind 127.0.0.1
# Redis使用后台模式
daemonize yes
# 关闭保护模式
protected-mode no
# 修改启动端口为6379
port 7002
# 修改pidfile指向路径
pidfile /usr/local/redis/7002/redis_7002.pid
#日志文件
logfile " /usr/local/redis/7002/log/7002.log"
#数据库文件名
dbfilename dump7002.rdb
#数据库文存放目录
dir /usr/local/redis/7002/data
# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志
tcp-backlog 511
#开启快照
appendonly yes
#主节点配置
slaveof 127.0.0.1 7000
启动从节点
/usr/local/redis/bin/redis-server /usr/local/redis/7002/redis7002.conf
测试是否成功
4、从节点slave3的配置文件redis7003.conf:
# 注释以下内容开启远程访问
# bind 127.0.0.1
# Redis使用后台模式
daemonize yes
# 关闭保护模式
protected-mode no
# 修改启动端口为6379
port 7003
# 修改pidfile指向路径
pidfile /usr/local/redis/7003/redis_7003.pid
#日志文件
logfile " /usr/local/redis/7003/log/7003.log"
#数据库文件名
dbfilename dump7003.rdb
#数据库文存放目录
dir /usr/local/redis/7003/data
# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志
tcp-backlog 511
#开启快照
appendonly yes
#主节点配置
slaveof 127.0.0.1 7000
启动从节点
/usr/local/redis/bin/redis-server /usr/local/redis/7003/redis7003.conf
测试是否成功
5、哨兵sentinel1的配置文件sentinel26301.conf:
port 26301
dir /usr/local/redis/7001/run/tmp
sentinel monitor mymaster 127.0.0.1 7000 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
logfile "/usr/local/redis/7001/log/sentinel26301.log"
6、哨兵sentinel2的配置文件sentinel26302.conf:
port 26302
dir /usr/local/redis/7002/run/tmp
sentinel monitor mymaster 127.0.0.1 7000 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
logfile "/usr/local/redis/7002/log/sentinel26302.log"
7、哨兵sentinel3的配置文件sentinel26303.conf:
port 26303
dir /usr/local/redis/7003/run/tmp
sentinel monitor mymaster 127.0.0.1 7000 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
logfile "/usr/local/redis/7003/log/sentinel26303.log"
六、启动redis和哨兵服务
注意:第一次要先启动redis主服务、从服务,然后才能启动哨兵服务
1、进入redis安装目录的根目录
2、启动redis主节点
/usr/local/redis/bin/redis-server /usr/local/redis/7000/redis7000.conf
3、启动redis从节点
/usr/local/redis/bin/redis-server /usr/local/redis/7001/redis7001.conf
/usr/local/redis/bin/redis-server /usr/local/redis/7002/redis7002.conf
/usr/local/redis/bin/redis-server /usr/local/redis/7003/redis7003.conf
4、启动哨兵
/usr/local/redis/bin/redis-sentinel /usr/local/redis/7001/sentinel26301.conf &
/usr/local/redis/bin/redis-sentinel /usr/local/redis/7002/sentinel26302.conf &
/usr/local/redis/bin/redis-sentinel /usr/local/redis/7003/sentinel26303.conf &
七、一些常用命令
进入redis的安装目录
启动redis-server:
./redis-server redis_6305.conf &
启动redis-sentinel
./redis-sentinel sentinel_6301.config
./redis-server sentinel_6316.conf --sentinel &
查看某个端口信息:
./redis-cli -p 6301 info
./redis-cli -p 6301 info Replication
./redis-cli -p 6301 info Sentinel
查看某个主机上的信息redis信息
./redis-cli -h 10.16.41.52 -p 6316 info
./redis-cli -h 10.16.41.52 -p 6316 info Replication
./redis-cli -h 10.16.41.52 -p 6316 info Sentinel
关闭本机redis服务
./redis-cli -p 6379 shutdown
关闭远程主机redis服务
./redis-cli -h 192.168.9.18 -p 6379 shutdown
客户端连接本机
./redis-cli -p 6301
客户端连接远程机
./redis-cli -h 10.16.41.53 -p 6301