Redis数据库集群部署!

Redis主从复制部署

设备准备:三台Redis服务器,master(192.168.118.100)、slave1(192.168.118.200)、slave2(192.168.118.50)

  • 三台服务器同步操作
yum install -y gcc gcc-c++ make
ntpdate ntp1.aliyun.com
cd /opt/redis-5.0.7/
make
make prefix=/usr/local/redis install
cd utils/
./install_server.sh
  • master
[root@master utils]# vim /etc/redis/6379.conf 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[root@master utils]# /etc/init.d/redis_6379 restart			#重启服务
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
Starting Redis server...
  • 两台slave同步操作
[root@slave1 utils]# vim /etc/redis/6379.conf 			#修改配置文件

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

[root@slave1 ~]# /etc/init.d/redis_6379 restart					#重启服务
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
Starting Redis server...
  • 在master上查看日志文件
[root@master ~]# cat /var/log/redis_6379.log 
………………………………
81072:M 08 Aug 2021 23:00:47.259 * Background saving terminated with success
81072:M 08 Aug 2021 23:00:47.259 * Synchronization with replica 192.168.118.50:6379 succeeded
81072:M 08 Aug 2021 23:00:47.259 * Synchronization with replica 192.168.118.200:6379 succeeded
[root@master ~]# redis-cli info replication				#验证主从复制效果
# Replication
role:master
connected_slaves:2
##master启动时生成40位16进制的随机字符串,用来标识master节点
slave0:ip=192.168.118.50,port=6379,state=online,offset=546,lag=0
slave1:ip=192.168.118.200,port=6379,state=online,offset=546,lag=1
master_replid:4e5fe691b45ddcbc614fae909211ffa2538dcb54
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:546
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:546
[root@master ~]# redis-cli									#进入主节点,设置一个key,然后在从节点查看
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set lisi www
OK
[root@slave1 ~]# redis-cli
127.0.0.1:6379> keys * 
1) "lisi"

Redis哨兵模式部署

设备准备,这里用上面三台服务器来做(先删除主从复制的配置)

  • 三台服务器同时配置
vim /opt/redis-5.0.7/sentinel.conf 				#修改哨兵配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 启动哨兵节点,先启动主节点,再启动两个从节点
[root@master ~]# cd /opt/redis-5.0.7/
[root@master redis-5.0.7]# redis-sentinel sentinel.conf &
[root@master redis-5.0.7]# redis-cli -p 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=ok,address=192.168.118.100:6379,slaves=2,sentinels=3

cluster集群搭建

设备三主三从,这里为了方便我们用一台设备做实验,三主节点:112/113/114 、三从节点:115/116/117

[root@cluster ~]# cd /etc/redis
[root@cluster redis]# mkdir -p redis-cluster/redis11{2..7}			#创建redis六个端口的工作目录
[root@cluster redis]# vim /opt/redis.sh								#设置启动脚本
#!/bin/bash
for i in {2..7}
do
        cp /opt/redis-5.0.7/redis.conf /etc/redis/redis-cluster/redis11$i
        cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis11$i
done
[root@cluster redis]# sh -x /opt/redis.sh							#执行脚本
  • 修改配置文件
[root@cluster redis]# cd /etc/redis/redis-cluster/redis112			#首先修改节点111的
[root@cluster redis112]# vim redis.conf

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 将修改的111节点配置文件分别复制到各个节点,然后修改其端口和名称
[root@cluster redis112]# cp redis.conf ../redis117/
cp: overwrite ‘../redis112/redis.conf’? y
[root@cluster redis112]# cp redis.conf ../redis113/
cp: overwrite ‘../redis113/redis.conf’? y
[root@cluster redis112]# cp redis.conf ../redis114/
cp: overwrite ‘../redis114/redis.conf’? y
[root@cluster redis112]# cp redis.conf ../redis115/
cp: overwrite ‘../redis115/redis.conf’? y
[root@cluster redis112]# cp redis.conf ../redis116/
cp: overwrite ‘../redis116/redis.conf’? y

在这里插入图片描述
在这里插入图片描述

  • 更改端口和文件名称,后面依次类推,保存退出设置启动脚本
[root@cluster redis116]# vim /opt/redis-start.sh
#!/bin/bash
for i in {2..7}
do
        cd /etc/redis/redis-cluster/redis11$i
        redis-server redis.conf
done
ps -ef | grep redis
[root@cluster redis116]# sh -x /opt/redis-start.sh 
root      24540      1  0 21:18 ?        00:00:00 /usr/local/bin/redis-server 127.0.0.1:6379
root      24711  20063  0 21:27 pts/1    00:00:00 sh -x /opt/redis-start.sh
root      24713      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:112 [cluster]
root      24715      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:113 [cluster]
root      24720      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:114 [cluster]
root      24725      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:115 [cluster]
root      24727      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:116 [cluster]
root      24738      1  0 21:27 ?        00:00:00 redis-server 127.0.0.1:117 [cluster]
root      24740  24711  0 21:27 pts/1    00:00:00 grep redis
  • 加入集群然后测试
[root@localhost redis117]# redis-cli --cluster create 127.0.0.1:112 127.0.0.1:113 127.0.0.1:114 127.0.0.1:115 127.0.0.1:116 127.0.0.1:117 --cluster-replicas 1
##六个节点,三主三从,每个主对应一个从节点,后面的交互输入yes即可
>>> Performing Cluster Check (using node 127.0.0.1:112)
M: 397888ebf5109561da23e32d00b54d7d1ef2127f 127.0.0.1:112
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: c9aeec32e6fefd7a6e0465cd81eab676f4eb5709 127.0.0.1:113
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: f1b9dac943f8d003e063cb1b2c56d60b701ac537 127.0.0.1:117
   slots: (0 slots) slave
   replicates c9aeec32e6fefd7a6e0465cd81eab676f4eb5709
M: 1b9411e364e5273846d9857c08ed867e946b9e37 127.0.0.1:114
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: cf2f2204207bf37ad8b94b7ea18cd562fe6bfa15 127.0.0.1:116
   slots: (0 slots) slave
   replicates 397888ebf5109561da23e32d00b54d7d1ef2127f
S: 8d7916590a49bd2b2e534e2e543830b51997921d 127.0.0.1:115
   slots: (0 slots) slave
   replicates 1b9411e364e5273846d9857c08ed867e946b9e37
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
  • 查看各节点对应的哈希槽
[root@localhost redis117]# redis-cli -p 112 -c		#进入第一个节点,-c表示节点之间可以切换
127.0.0.1:112> cluster slots						#查看各节点对应的哈希槽
1) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "127.0.0.1"
      2) (integer) 113
      3) "c9aeec32e6fefd7a6e0465cd81eab676f4eb5709"
   4) 1) "127.0.0.1"
      2) (integer) 117
      3) "f1b9dac943f8d003e063cb1b2c56d60b701ac537"
2) 1) (integer) 0
   2) (integer) 5460
   3) 1) "127.0.0.1"
      2) (integer) 112
      3) "397888ebf5109561da23e32d00b54d7d1ef2127f"
   4) 1) "127.0.0.1"
      2) (integer) 116
      3) "cf2f2204207bf37ad8b94b7ea18cd562fe6bfa15"
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "127.0.0.1"
      2) (integer) 114
      3) "1b9411e364e5273846d9857c08ed867e946b9e37"
   4) 1) "127.0.0.1"
      2) (integer) 115
      3) "8d7916590a49bd2b2e534e2e543830b51997921d"
  • 测试集群
127.0.0.1:112> set name whd						#创建一个key键whd,发现他对应哈希槽位5798
-> Redirected to slot [5798] located at 127.0.0.1:113
OK
127.0.0.1:113> cluster keyslot name				#查看键的哈希槽,对应发现在113节点中
(integer) 5798
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一款开源的内存数据存储系统,支持数据持久化。Redis可以作为缓存、数据库和消息队列使用,已经成为互联网行业中非常流行的组件之一。在高并发场景下,单个Redis节点可能出现性能瓶颈,因此需要使用Redis集群来提高系统的可用性和性能。本文将介绍如何在Linux系统上部署Redis集群。 1. 安装Redis 首先需要在每个节点上安装Redis软件,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install redis-server ``` 2. 配置Redis 在每个节点上都需要对Redis进行配置,主要包括以下几个方面: (1)修改Redis配置文件redis.conf,开启集群模式: ``` cluster-enabled yes ``` (2)指定Redis集群的端口范围: ``` cluster-config-file nodes.conf cluster-node-timeout 5000 ``` (3)指定Redis日志输出文件和日志级别: ``` logfile "/var/log/redis/redis-server.log" loglevel notice ``` (4)如果需要密码认证,可以设置requirepass参数: ``` requirepass mypassword ``` 配置完成后,需要重启Redis服务,使配置生效。 3. 创建Redis集群 使用Redis提供的redis-trib.rb脚本可以方便地创建Redis集群。首先需要在其中选择一个节点作为主节点,其他节点将加入到主节点的集群中。 首先需要安装ruby和rubygems: ``` sudo apt-get install ruby rubygems ``` 然后安装redis gem: ``` sudo gem install redis ``` 进入到redis-trib.rb所在的目录,执行以下命令: ``` ./redis-trib.rb create --replicas 1 <node1>:<port1> <node2>:<port2> <node3>:<port3> <node4>:<port4> <node5>:<port5> <node6>:<port6> ``` 其中,--replicas参数指定每个主节点的从节点数量,<node>:<port>指代Redis节点的IP地址和端口号。执行该命令后,redis-trib.rb会自动创建Redis集群。 4. 测试Redis集群 可以使用redis-cli命令测试Redis集群的功能。首先需要连接到Redis集群的任意一个节点: ``` redis-cli -c -h <node> -p <port> ``` 其中,-c参数表示开启集群模式。 可以使用set和get命令测试Redis集群的读写功能: ``` set mykey myvalue get mykey ``` 如果Redis集群正常工作,应该可以成功执行以上命令。 5. 总结 本文介绍了在Linux系统上部署Redis集群的过程,通过配置和使用redis-trib.rb脚本可以快速创建Redis集群。在实际生产环境中,需要根据具体业务场景进行优化和调整,以提高系统的可用性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值