redis 主从+哨兵部署

环境介绍:

操作系统:中标麒麟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

你可能感兴趣的:(redis 主从+哨兵部署)