首页 > 数据库 > Redis搭建稳定的集群

Redis搭建稳定的集群

时间:2023-03-24 22:34:05浏览次数:57  
标签:bin 6789 Redis redis 集群 conf sentinel 搭建

@TOC

redis集群搭建原理

 Redis搭建稳定的集群_配置文件

Redis集群的搭建

当集群中超过或等于1/2节点不可用时,整个集群不可用。为了搭建稳定集群,都采用奇数节点。

  • 1,配置redis
  • [ ] 复制配置文件

将 /usr/local/redis/bin下的redis.conf复制一份,并重命名为redis-6789.conf

名字可随便起,但要见名知意,6789是复制后要修改成的文件端口号

[root@localhost bin]# cp /usr/local/redis/bin/redis.conf  /usr/local/redis/bin/redis-6789.conf
[root@localhost bin]# ls
redis-6789.conf  redis-check-aof  redis-cli   redis-sentinel
redis-benchmark  redis-check-rdb  redis.conf  redis-server
  • [ ] 修改redis-6789.conf
[root@localhost bin]# vi   /usr/local/redis/bin/redis-6789.conf

修改内容如下

port 6789

#普通的redis实例不能作为集群实例的一部分,只有节点才能作为集群的启动点;
cluster-enabled yes # 启用集群支持

# 集群节点的配置文件, 由节点自己生成自己管理;每个节点的配置文件要求不能重名
cluster-config-file nodes-6789.conf

# 群集节点超时是一个节点必须不可达的毫秒数,使其处于失效状态。
#大多数其他内部时间限制都是节点超时的倍数。
cluster-node-timeout 15000

# appendonly yes 如果开启aof默认,需要修改为yes。如果使用rdb,此处不需要修改

# 开启守护线程,Redis会在/var/run/ Redis中写入一个pid文件监控pid。
daemonize yes

#将保护模式关闭
protected-mode no


#如果指定了pid文件,Redis会在启动时将其写入指定的位置并在退出时移除它。
#当服务器运行非守护进程时,如果没有pid文件,则不创建pid文件
#在配置中指定。当服务器被守护时,pid文件即使没有指定也会被使用,默认值为“/var/run/redis.pid”。
#如果没有创建成功.pid文件,redis也会正常运行;
pidfile /var/run/redis_6789.pid
  • [ ] 将redis-6789.conf复制6份,将相关配置按照上面的方式修改
port 6790
cluster-config-file nodes-6790.conf
pidfile /var/run/redis_6790.pid
  • [ ] 启动6个redis

启动之前先要删除之前存在的dump.rdb文件,以免影响启动策略

新建一个启动文件 startup.sh 编辑内容如下

./redis-server redis-6789.conf
./redis-server redis-6790.conf
./redis-server redis-6791.conf
./redis-server redis-6792.conf
./redis-server redis-6793.conf
./redis-server redis-6794.conf

赋予权限~

chmod a+x startup.sh

启动服务

 Redis搭建稳定的集群_redis_02

查看启动状态

 Redis搭建稳定的集群_配置文件_03

以上是手动建立集群

配置集群时要配置静态Ip,dang ip改变时,集群就失效了

在redis5之后支持命令行创建集群在/usr/local/redis/bin下执行

./redis-cli --cluster create 
192.168.135.145:6789 
192.168.135.145:6790 
192.168.135.145:6791 
192.168.135.145:6792 
192.168.135.145:6793 
192.168.135.145:6794 
--cluster-replicas 1

 Redis搭建稳定的集群_配置文件_04

 Redis搭建稳定的集群_配置文件_05

编写关闭脚本

[root@localhost bin]# touch shutdown.sh
[root@localhost bin]# vi shutdown.sh

编写内容~

./redis-cli -p 6789 shutdown
./redis-cli -p 6790 shutdown
./redis-cli -p 6791 shutdown
./redis-cli -p 6792 shutdown
./redis-cli -p 6793 shutdown
./redis-cli -p 6794 shutdown

赋予权限

[root@localhost bin]# chmod a+x shutdown.sh

启动集群

注意 端口号 后 要有 -c 表示启动集群,如果没有则表示正常启动redis的一个;

[root@localhost bin]# ./redis-cli -p 6789 -c
127.0.0.1:6789> set name lisi 
-> Redirected to slot [5798] located at 192.168.135.145:6790
OK
192.168.135.145:6790> get name
"lisi"
192.168.135.145:6790> hset person name wangwu
-> Redirected to slot [1838] located at 192.168.135.145:6789
(integer) 1
192.168.135.145:6789>

有上述信息可以发现~redis set name 重定向到192.168.135.145:6790机器 redis 6790 这个节点.如果看到这样的现象,说明redis cluster集群已经是可用的了!!!!!!

集群在遇到大量i/o操作时会自动分配节点去执行写入操作;

 Redis搭建稳定的集群_redis_06

关闭集群

./shutdown.sh

 Redis搭建稳定的集群_redis_07

另一种方式是通过手动配置redis的配置信息来完成redis的定制化

基本配置指定主节点ip和端口

replicaof 192.168.93.10 6379

修改自己端口

port 6381

守护模式开启,保护模式关闭

为了增强redis集群的健壮性,我们还需要开启哨兵来监控redis的运行状态,万一哪一天主节点挂了,以备有子节点能顶上;

在redis主从默认是只有主具备写的能力,而从只能读。如果主宕机,整个节点不具备写能力。但是如果这是让一个从变成主,整个节点就可以继续工作。即使之前的主恢复过来也当做这个节点的从即可。

1,新建目录

mkdir /usr/local/sentinel

2,复制redis

cp -r /usr/local/redis/bin/* /usr/local/sentinel

3,从redis解压目录中复制sentinel配置文件

cd /usr/local/tmp/redis-5.0.5/
 cp sentinel.conf /usr/local/sentinel/

4.修改配置文件

cd /usr/local/sentinel
  vim sentinel.conf

port 26379
daemonize yes
logfile “/usr/local/sentinel/26379.log”
sentinel monitor mymaster 192.168.93.10 6379 2

其他的节点配置类似

接下来启动 redis 集群

然后启动哨兵

新建启动文件--startup.sh,并赋予权限

启动文件的内容

cd /usr/local/sentinel/bin
    ./redis-sentinel  sentinel.conf
cd /usr/local/sentinel/bin
   ./redis-sentinel  sentinel-26380.conf
cd /usr/local/sentinel/bin
   ./redis-sentinel  sentinel-26381.conf
   ps aux|grep sentinel
~

赋予权限chmod a+x startup.sh

启动哨兵

测试宕机

查看redis进程号

ps aux|grep redis

杀死主进程号

kill -9 进程号

查看日志,短暂延迟后会发现,出现新的主。

cat 26379.log

标签:bin,6789,Redis,redis,集群,conf,sentinel,搭建
From: https://blog.51cto.com/u_15912968/6148304

相关文章

  • redis rdb-bigkeys安装和使用
    先安装go下载地址:wgethttps://dl.google.com/go/go1.12.6.linux-amd64.tar.gz解压:tar-zvxfgo1.12.6.linux-amd64.tar.gz配置环境变量:vi/etc/profile加入......
  • centos7 yum 安装nodejs 16,搭建编译vue项目环境
    1、安装nodejscurl-fsSLhttps://rpm.nodesource.com/setup_16.x|sudobash-sudoyuminstallnodejsnode-v2、安装yarn#安装yarnnpminstall-gyarn#查......
  • 如何在 Docker 中配置并启动 Redis
    1.下载Redis镜像在Docker中启动Redis之前,需要先从DockerHub下载Redis镜像。可以使用以下命令进行下载:dockerpullredis:6.0.82.创建并配置Redis自定义......
  • zookeeper集群搭建
    1.zookeeper介绍ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致......
  • Nacos集群部署
    一、集群部署说明因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面http://ip1:port/openAPI直连ip模式,机器挂则需要修改ip才可以使用。http......
  • Redis中的BigKey问题:排查与解决思路
    本文已收录至Github,推荐阅读......
  • Redis中的BigKey问题:排查与解决思路
    本文已收录至Github,推荐阅读......
  • 在docker上安装MySQL和Redis
    1.通过docker命令下载mysql5.7镜像mysql5.7前期准备2.通过docker命令下载mysql8.0镜像mysql8.0前期准备3.通过docker命令下载redis镜像redis前期准备本文永......
  • Centos7安装redis
    redis是一个在内存中存储数据的工具,可以用作缓存,数据库,和消息代理。安装centos7中安装redis,步骤如下:官网下载redis压缩包,地址https://redis.io/,下载后的压缩包为:redi......
  • 交叉编译redis服务,并设置开机自启动
    交叉编译需要下载redis源码1、下载源码源码可以前往redis下载链接 2、源码解压tarzxvf7.0.2.tar.gz3、输入命令cdredis-7.0.2/makedistcleanmakeclean4、......