Redis部署(单机,主从(哨兵),Cluster

实验环境

redis版本:redis-6.2.6

服务器ip地址:192.168.10.100

redis安装目录:/data/redis

一、单机部署

1、编译安装

将redis压缩包解压至安装目录中

tar -zxvf redis-6.2.6.tar.gz -C ..

等待解压完成后进入到redis的安装目录中进行安装

cd /data/redis-6.2.6/src

make

make install PREFIX=/data/redis-6.2.6

创建其他存放目录

mkdir /data/redis-6.2.6/{logs,data}

mkdir /data/redis-6.2.6/logs/{run,sentinel}

mkdir /data/redis-6.2.6/data/{6379,6380,6381,sentinel}

mkdir /data/redis-6.2.6/data/sentinel/{6379,6380,6381}

2、设置环境变量

修改全局环境变量

vim /etc/profile

#在文件末尾加入

export REDIS_HOME=/data/redis-6.2.6/redis

export PATH=$REDIS_HOME/bin:$PATH

生效 source /etc/profile

3、修改配置文件

修改redis服务的配置文件

bind 0.0.0.0 //修改监听地址为0.0.0.0

daemonize yes //开启守护进程

pidfile "/data/redis/logs/run/redis_6379.pid" 

logfile /data/redis-6.2.6/logg/redis_6379.log //指定日志文件目录

dir /data/redis-6.2.6/data/6379 //指定工作目录

appendonly yes //开启AOF持久化功能

requirepass Redis@15 //设置redis的登录密码

masterauth Redis@15 //设置redis哨兵连接登录密码

4、启动redis服务并测试

修改配置完成后启动redis服务

redis-server /data/redis-6.2.6/redis-6379.conf

检查进程和端口是否正常启动

#检查进程是否存在

ps -ef | grep redis

#检查端口是否监听

netstat -anlp | grep 6379

登录redis并测试

redis-cli -h 192.168.10.100 -p 6379 -a Redis@15

127.0.0.1:6379> ping

PONG

127.0.0.1:6379> get keys*

(nil)

单机部署完成

二、主从(哨兵)模式部署

  • 在主从复制的基础上起到主节点自动故障转移的作用

1、主从搭建

1.1、修改配置文件

复制redis的配置文件

cd /data/redis-6.2.6

cp redis-6379.conf redis-6380.conf

cp redis-6379.conf redis-6381.conf

修改redis-6380.conf配置文件

vim redis-6380.conf

#修改从节点的服务监听端口

port=6380

pidfile "/data/redis/logs/run/redis_6379.pid"

log "/data/redis/logs/redis_6380.log"

dir /data/redis-6.2.6/data/6380

replicaof 192.168.10.100 6379 ##添加一条指定要同步的Master节点IP和端口

修改redis-6381.conf配置文件

vim redis-6381.conf

#修改从节点的服务监听端口

port=6381

pidfile "/data/redis/logs/run/redis_6381.pid"

log "/data/redis/logs/redis_6381.log"

dir /data/redis-6.2.6/data/6381

replicaof 192.168.10.100 6379 ##添加一条指定要同步的Master节点IP和端口

1.2、启动reids服务

  • 由于单机部署的时候reids没有停止,所以后续只需要启动从节点即可

逐个启动从节点

redis-server /data/redis-6.2.6/redis-6380.conf

redis-server /data/redis-6.2.6/redis-6381.conf

启动完成后检查进程和端口是否正常启动

#检查进程是否存在

ps -ef | grep redis

#检查端口是否监听

netstat -anlp | grep 6380

netstat -anlp | grep 6381

1.3、验证是否为主从模式

登录redis并查看redis主从模式的状态

redis-cli -h 192.168.10.100 -p 6379 -a Redis@15

127.0.0.1:6379> info replication

role:master
connected_slaves:2
slave0:ip=192.168.10.100,port=6380,state=online,offset=1582,lag=1
slave1:ip=192.168.10.100,port=6381,state=online,offset=1582,lag=1
master_replid:26ff9ff54709807b1e568f24ee28d9f540087bc2
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1582 
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1582

在redis主节点中创建class键

redis-cli -h 192.168.10.100 -p 6379 -a Redis@15

127.0.0.1:6379> key*

(empty list or set)

127.0.0.1:6379> set class lisi

OK

127.0.0.1:6379> get class

"lisi"

master创建class,节点服务器slave1和slave2同步创建

登录从节点查看是否有此class键

redis-cli -h 192.168.10.100 -p 6380 -a Redis@15

127.0.0.1:6380> key*

"class"

2、哨兵模式部署

2.1、修改哨兵配置文件(所有节点)

修改sentinel-6379.conf的配置文件

vim /data/redis-6.2.6/sentinel-6379.conf

protected-mode no

port 26381

daemonize yes

pidfile "/data/redis/logs/run/redis_6379.pid"

logfile "/data/redis-6.2.6/logs/sentinel-6379.log"

dir /data/redis-6.2.6/data/sentinel/6379

sentinel monitor mymaster 192.168.10.100 6379 2

sentinel down-after-milliseconds mymaster 3000

sentinel failover-timeout mymaster 181000

sentinel auth-pass mymaster Redis@15

修改sentinel-6380.conf的配置文件

vim /data/redis-6.2.6/sentinel-6380.conf

protected-mode no

port 26381

daemonize yes

pidfile "/data/redis/logs/run/redis_6381.pid"

logfile "/data/redis-6.2.6/logs/sentinel-6380.log"

dir /data/redis-6.2.6/data/sentinel/6380

sentinel monitor mymaster 192.168.10.100 6379 2

sentinel down-after-milliseconds mymaster 3000

sentinel failover-timeout mymaster 181000

sentinel auth-pass mymaster Redis@15

修改sentinel-6381.conf的配置文件

vim /data/redis-6.2.6/sentinel-6381.conf

protected-mode no

port 26381

daemonize yes

pidfile "/data/redis/logs/run/redis_6381.pid"

logfile "/data/redis-6.2.6/logs/sentinel-6381.log"

dir /data/redis-6.2.6/data/sentinel/6381

sentinel monitor mymaster 192.168.10.100 6379 2

sentinel down-after-milliseconds mymaster 3000

sentinel failover-timeout mymaster 181000

sentinel auth-pass mymaster Redis@15

2.2启动哨兵模式

节点服务器先启动主节点服务器再启动从节点的服务器

启动主节点

redis-sentinel /data/redis-6.2.6/sentinel-6379.conf &

启动从节点

redis-sentinel /data/redis-6.2.6/sentinel-6380.conf &

redis-sentinel /data/redis-6.2.6/sentinel-6381.conf &

2.3、查看哨兵信息

启动完成后查看哨兵信息

redis-cli -h 192.168.10.100 -p 26379

127.0.0.1:26379> info sentinel

Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

sentinel_simulate_failure_flags:0

master0:name=mymaster,status=sdown,address=192.168.10.100:6379,slaves=2,sentinels=3

2.4模拟故障

进入master节点并停止服务

redis-cli -h 192.168.10.100 -p 6379 -a Redis@15

shutdown

查看sentinel的日志

vim /data/redis-6.2.6/logs/sentinel-6379.log

66152:X 15 Jun 2022 16:05:35.615 # +monitor master mymaster 192.168.10.100 6379 quorum 2

66152:X 15 Jun 2022 16:06:05.619 # +sdown master mymaster 192.168.10.100 6379

登录sentinel查看哨兵信息

redis-cli -p 26379

127.0.0.1:26379> info sentinel

#Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

sentinel_simulate_failure_flags:0

master0:name=mymaster,status=sdown,address=192.168.10.100:6379,slaves=0,sentinels=1

* status=sdown ##s表示主观下线

* status=odown ##o即objectively客观下线

三、Cluster集群部署

  • redis的集群一般需要6个节点,3主3从。

1、创建6个端口的工作目录

创建目录并复制

mkdir -p /data/redis_cluster/redis600{1..6}

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6001/

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6002/

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6003/

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6004/

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6005/

cp /data/redis-6.2.6/redis.conf /data/redis_cluster/redis6006/

2、修改配置文件

除端口号和文件名称除外其余修改相同

bind 127.0.0.1 ##为允许连接redis的ip地址默认监听所有网卡,

protected -mode no ##修改,关闭保护模式

port 6001 ##修改,redis监听端口   端口也需要修改为不同

daemonize yes ##开启守护进程,以独立进程启动

cluster-enabled yes ## 取消注释,开启群集功能

cluster-config-file nodes-6001.conf ##取消注释,群集名称文件设置,需要修改为不同的名字

cluster-node-timeout 15000 ##取消注释群集超时时间设置

appendonly yes //修改,开启AOF持久化

3、启动redis cluster集群

启动

redis-server /data/redis_cluster/redis6001/redis.conf

redis-server /data/redis_cluster/redis6002/redis.conf

redis-server /data/redis_cluster/redis6003/redis.conf

redis-server /data/redis_cluster/redis6004/redis.conf

redis-server /data/redis_cluster/redis6005/redis.conf

redis-server /data/redis_cluster/redis6006/redis.conf

4、查看服务是否正常启动

查看进程启动情况

[root@node2 redis_cluster]#ps -ef | grep redis

root 5055 1 0 15:04 ? 00:00:00 redis-server 0.0.0.0:6001 [cluster]

root 5068 1 0 15:04 ? 00:00:00 redis-server 0.0.0.0:6002 [cluster]

root 5076 4198 0 15:04 pts/0 00:00:00 grep --color=auto redis

查看端口启动情况

[root@node2 redis_cluster]#netstat -anlp | grep 600

tcp 0 0 0.0.0.0:16001 0.0.0.0:* LISTEN 5055/redis-server 0

tcp 0 0 0.0.0.0:16002 0.0.0.0:* LISTEN 5068/redis-server 0

tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 5055/redis-server 0

tcp 0 0 0.0.0.0:6002 0.0.0.0:* LISTEN 5068/redis-server 0

5、初始化redis cluster集群

等待redis启动完成后初始化reids cluster集群

redis-cli --cluster create 192.168.10.100:6001 192.168.10.100:6002 192.168.10.101:6001 192.168.10.101:6002 192.168.10.102:6001 192.168.10.102:6002 --cluster-replicas 1

##ip:port为redis cluster所在的服务器ip和监听的端口

#在如下提示时输入yes

Can I set the above configuration? (type 'yes' to accept):

##等待初始化完成

[OK] All nodes agree about slots configuration. Check for open slots... Check slots coverage... [OK] All 16384 slots covered.

6、查看集群情况

登录并查看集群情况

redis-cli -p 6001 cluster info

##输出如下内容

cluster_state:ok

cluster_slots_assigned:16384

cluster_slots_ok:16384

cluster_slots_pfail:0

cluster_slots_fail:0

cluster_known_nodes:6

cluster_size:3

cluster_current_epoch:6

cluster_my_epoch:3

cluster_stats_messages_ping_sent:754

cluster_stats_messages_pong_sent:741

cluster_stats_messages_meet_sent:1

cluster_stats_messages_sent:1496

cluster_stats_messages_ping_received:741

cluster_stats_messages_pong_received:755

cluster_stats_messages_received:1496

查看节点情况

redis_cli -p 6001 cluster nodes

##输出以下内容

af8225c5865e5d20fdf82c8076cc2da3af8e8e77 192.168.10.102:6002@16002 slave 868bdeef07c24829858813e07b856ec39f51f490 0 1655449557000 3 connected

23f3d8aa26b369b0023d0cd3c444ae62bdd039e1 192.168.10.100:6002@16002 slave 53dac66e2408c73f54da11dab64367f448ecf1e8 0 1655449558670 5 connected

c2b81704c33647646539d203dffd42f7261a35c9 192.168.10.101:6002@16002 slave 145060e7b30e598769eb8805ba59b3b8f25d85fa 0 1655449557622 1 connected

53dac66e2408c73f54da11dab64367f448ecf1e8 192.168.10.102:6001@16001 master - 0 1655449558000 5 connected 10923-16383

145060e7b30e598769eb8805ba59b3b8f25d85fa 192.168.10.100:6001@16001 myself,master - 0 1655449556000 1 connected 0-5460

868bdeef07c24829858813e07b856ec39f51f490 192.168.10.101:6001@16001 master - 0 1655449557000 3 connected 5461-10922

测试,登录其中一个主节点创建一个key值

redis-cli -p 6001 -c

set class list

登录其他主节点查看是否存在在主节点创建的key

redis-cli -p 6001 -c

keys *

get class

至此以上redis搭建完成

 参考于Redis集群部署_吃不吃西红柿的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值