redis集群实现在centos8简单部署命令

一、安装部署

1.安装redis执行环境Redis是基于c语言编写的需要安装依赖,需要安装gcc:

 yum install gcc-c++

查看gcc版本命令:

 gcc -v


2.进入redis解压后的目录执行命令指定目录 $Redis_Home=/root/dev/redis/redis(不指定目录默认在$Redis_Home=/usr/local/bin下)

make PREFIX=/root/dev/redis/redis install

3.配置集群redis.conf文件 可以是$Redis_Home目录下的也可是自定义conf文件只要服务启动这个文件即可

示例一1.主从集群redis.conf配置   master配置

#主从集群conf
# 监听ip,多个ip用空格分隔  自己机器的ip
bind 192.168.1.120
# 允许后台启动
daemonize yes
# 日志路径
logfile "/root/dev/redis/redis/log/redis.log"
# 数据库备份文件存放目录
dir /root/dev/redis/redis/data
# slave连接master密码,master可省略      
masterauth 123456
# 设置master连接密码,slave可省略      
requirepass 123456
 # 在/root/dev/redis/redis/data 目录生成appendonly.aof文件        
appendonly yes

slave配置另外一个机器的redis.conf

# 监听ip,多个ip用空格分隔自己机器的ip
bind 192.168.1.121
# 允许后台启动
daemonize yes
# 日志路径
logfile "/root/dev/redis/redis/log/redis.log"
# 数据库备份文件存放目录
dir /root/dev/redis/redis/data             
#  replicaof用于追随某个节点的redis,被追随的节点为主节点,追随的为从节点。就是设置master节点
replicaof 192.168.1.120 6379
# slave连接master密码,master可省
masterauth 123456
# 设置master连接密码,slave可省略
requirepass 123456
appendonly yes

示例二哨兵模式是基于主从模式的当master挂掉后有slave当选master节点
1.启动示例一的主从集群全部启动完
2.配置sentinel.conf文件  红颜色根据实际情况配置

#当前机器的ip地址

bind 192.168.1.121

#可以是没有用过的端口
port 26379
#哨兵的启动模式,yes是后台启动
daemonize yes
#哨兵的pid文件存放位置
pidfile /var/run/redis-sentinel.pid
#哨兵的日志文件存放位置
logfile "/root/dev/redis/redis/log/redis-sentinel.log"
#哨兵进程的工作目录,默认就是/tmp
dir /tmp
#哨兵监听的master数据库,node01是为主数据库起的名称,可以随便起个名字后面是master的ip和端口
# 判断master失效至少需要2个sentinel同意,建议设置为n/2+1,n为sentinel个数
sentinel monitor node01 192.168.1.121 6379 3
#配置master的登陆密码,node01是你配置的master名称
sentinel auth-pass node01 123456
#30秒内master无响应则认为master挂掉
sentinel down-after-milliseconds node01 30000
#保持默认即可
acllog-max-len 128
#master重新选举之后,其它节点能同时并行进行数据同步的台数有多少台
#显然该值越大,则所有slave能同步完成的速度越快,但如果此时刚好有人访问slave数据,可能造成读取失败,最保守的值建议设为1
#即同一时间只能有一台进行数据同步,这样其它slave还能继续提供服务,但是所有的slave数据同步完成就会显得缓慢。
sentinel parallel-syncs node01 2
#故障转移超时时间,指在该时间内如果故障转移没有成功,则会再发起一次故障转移
sentinel failover-timeout node01 180000
#保持默认即可
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no

3.启动哨兵模式$Redis_Home/bin目录下,   ../sentinel.conf  根据实际情况配置路径

redis-sentinel  ../sentinel.conf 

4.查看详情命令$Redis_Home/bin目录下

redis-cli -h 192.168.1.121 -p 26379

192.168.1.120:26379>SENTINEL master node01
192.168.1.120:26379>SENTINEL REPLICAS node01

示例三Cluster(集群)模式redis.conf配置 红颜色表示根据自己实际修改同台机器文件名,端口号要不同

#注:所有节点配置文件全部修改切记需要修改的ip、端口、pid文件...避免冲突。确保所有机器都修改
#每个实例的配置文件修改为对应节点的ip地址
bind 192.168.1.120
#监听端口,运行多个实例时,需要指定规划的每个实例不同的端口号
port 7000
#redis后台运行 
daemonize yes
#pid文件,运行多个实例时,需要指定不同的pid文件
pidfile /var/run/redis_7000.pid
#日志文件位置,运行多实例时,需要将文件修改的不同。
logfile /root/dev/redis/redis/log/redis_7000.log
#存放数据的目录
dir /root/dev/redis/redis/data
#开启AOF持久化,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时会从该文件恢复出之前的状态。
appendonly yes

#设置密码  要设置密码不然redis默认是protected(保护模式)没有密码创建不了集群或者关掉protected(保护模式)也可不要密码
masterauth "123456"
requirepass "123456"
#AOF文件名称
appendfilename "appendonly.aof"
#表示对写操作进行累积,每秒同步一次
appendfsync everysec
#以下为打开注释并修改
#启用集群
cluster-enabled yes
#集群配置文件,由redis自动更新,不需要手动配置,运行多实例时请注修改
cluster-config-file nodes-7000.conf
#单位毫秒。集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
#在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。(计算方法为:cluster-node-timeout * cluster-replica-validity-factor,此处为:5000 * 10 毫秒)
cluster-node-timeout 5000
cluster-replica-validity-factor 10
#一个主机将保持连接的最小数量的从机,以便另一个从机迁移到不再被任何从机覆盖的主机
cluster-migration-barrier 1
#集群中的所有slot(16384个)全部覆盖,才能提供服务
cluster-require-full-coverage yes

集群命令$Redis_Home/bin目录下,  四台机器   每台启动两个端口号  一主一从

#需要创建集群,创建集群

# –cluster-replicas 1: 表示集群的一个主节点有1个从节点,就是一主一从模式

redis-cli -a 123456 --cluster create --cluster-replicas 1 192.168.37.120:7000 192.168.1.120:7001 192.168.1.121:7000 192.168.1.121:7001 192.168.1.122:7000 192.168.1.122:7001 192.168.1.123:7000 192.168.1.123:7001

#登录集群

redis-cli -c -h 192.168.1.120 -p 7001

#集群信息

redis-cli -c -h 192.168.182.129 -p 7001
192.168.1.120:7001> auth 123456
192.168.1.120:7001> CLUSTER INFO
192.168.1.120:7001> CLUSTER NODES

4.进入$Redis_Home/bin目录启动服务../redis.conf这里是相对路径,用绝对路径也可

redis-server  ../redis.conf


5.在$Redis_Home/bin目录下启动redis客户端数据库 红色这个是默认redis.conf配置如果更改需要更换

redis-cli -h 127.0.0.1 -p 6379

6.查看集群信息


查看集群信息
# 交互式
redis-cli -h 192.168.1.120 -a 123456
192.168.1.120:6379> info replication

# 交互式
redis-cli -h 192.168.1.120
192.168.1.120:6379> auth 123456
192.168.1.120:6379> info replication

# 非交互式
redis-cli -h 192.168.1.120 -a 123456 info replication


7.关闭redis客户端命令

 SHUTDOWN
 exit

二、错误解决方法

1.当启动redis客户端(redis-cli )报错[ERR] Node 192.168.37.128:7000 DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Set up an authentication password for the default user. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.  就是protected保护模式默认开启了但是redis.conf启动没有配置密码

#解决就是redis.conf开启密码或者关闭保护模式

#设置密码
masterauth "123456"
requirepass "123456"

#关闭保护模式

protected-mode no

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在CentOS 7上部署Redis Cluster集群的步骤如下: 1. 安装Redis。可以使用yum安装,命令为:yum install redis。 2. 在每台机器上配置redis.conf文件。需要修改的配置项包括:bind IP地址、端口号、cluster-enabled yes、cluster-config-file nodes.conf、cluster-node-timeout 15000。 3. 启动每台机器上的Redis服务。命令为:systemctl start redis。 4. 在一台机器上执行redis-cli --cluster create命令,创建集群。命令格式为:redis-cli --cluster create <host:port> <host:port> <host:port> … --cluster-replicas <replicas>。 5. 验证集群是否正常工作。可以使用redis-cli --cluster info命令查看集群信息,使用redis-cli --cluster nodes命令查看集群中的节点。 注意: - 安装redis-trib.rb - redis-cli --cluster create 参数的IP是各自机器的IP,端口号应该相同 - 集群中可以有多个主节点 - 如果集群已经存在,那么需要在新加入节点上进行redis-trib add-node ### 回答2: 在CentOS 7上部署Redis 7的集群,需要执行以下步骤: 1. 安装Redis 7: 首先,确保已经安装了CentOS 7的操作系统。然后,通过以下命令安装Redis 7的依赖项: ```bash sudo yum install epel-release sudo yum install redis ``` 安装完成后,验证Redis是否成功安装: ```bash redis-cli --version ``` 如果输出了Redis的版本信息,则表示安装成功。 2. 配置Redis集群节点: 创建redis-cluster文件夹,然后在该文件夹下创建6个目录,分别用于存储6个节点的配置和数据: ```bash mkdir redis-cluster cd redis-cluster mkdir node1 node2 node3 node4 node5 node6 ``` 在每个节点文件夹下创建redis.conf配置文件,并进行相应的配置。至少需要配置以下参数: ```bash bind 0.0.0.0 port <port_number> cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout <timeout_in_ms> appendonly yes ``` 其中,<port_number>是每个节点的端口号,<timeout_in_ms>是集群节点通信的超时时间。 3. 启动Redis集群节点: 使用以下命令启动每个节点: ```bash redis-server /path/to/redis-conf-file.conf ``` 比如,启动第一个节点: ```bash redis-server /path/to/redis-cluster/node1/redis.conf ``` 4. 创建Redis集群: 使用以下命令创建Redis集群: ```bash redis-cli --cluster create <node1_ip:port> <node2_ip:port> ... --cluster-replicas 1 ``` 比如,创建Redis集群的命令为: ```bash redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1 ``` 这个命令会将节点连接成一个集群,并指定1个副本。 5. 验证Redis集群是否正常工作: 使用以下命令验证Redis集群是否正常工作: ```bash redis-cli -c -p <any_port> ``` 比如,连接到第一个节点的Redis CLI: ```bash redis-cli -c -p 7001 ``` 然后,运行一些Redis命令进行验证: ```bash set key1 value1 get key1 ``` 至此,Redis 7的集群在CentOS 7上部署完成。可以通过添加更多的节点来扩展集群,并根据需要调整配置参数。 ### 回答3: 在CentOS 7上部署Redis 7的集群主要可以通过以下步骤来完成: 1. 安装Redis 7:在CentOS 7上安装Redis 7可以使用源码编译安装或者使用软件包管理工具(如yum)来安装。可以从Redis官方网站下载最新版本的源码并编译安装,或者使用以下命令通过yum安装: ``` $ sudo yum update $ sudo yum install redis ``` 2. 配置Redis 7:Redis的配置文件位于`/etc/redis.conf`。可以使用文本编辑器(如vi或nano)打开该文件并进行必要的配置更改,以确保集群设置能够正常工作。配置参数包括端口、绑定IP、密码等。 3. 创建集群:使用Redis提供的`redis-cli`命令行工具创建Redis集群。集群至少需要3个主节点才能正常工作。可以通过以下命令创建Redis集群: ``` $ redis-cli --cluster create <Node1IP>:<Port> <Node2IP>:<Port> <Node3IP>:<Port> ... ``` 其中,`NodeIP`和`Port`分别是节点的IP地址和端口号,具体根据实际情况进行填写。该命令会自动进行分区和数据分配。 4. 验证集群:在创建集群后,可以使用`redis-cli`连接到集群,并使用`cluster nodes`命令来验证集群的状态,以确保所有节点正常运行并连接到正确的集群。 ``` $ redis-cli -c -h <NodeIP> -p <Port> redis> cluster nodes ``` 该命令将返回当前集群的节点信息,包括节点ID、IP地址、端口、角色等。 5. 扩展和管理集群:一旦集群正常运行,可以通过添加新的节点或对节点进行重新分区来扩展和管理集群。可以使用`redis-cli`命令行工具添加新节点,然后使用`cluster reshard`命令来重新分区。 以上是在CentOS 7上部署Redis 7集群的基本步骤。根据具体的需求和情况,还可以进行更深入的集群配置和管理。请注意,集群的设置和管理需要仔细考虑,并且需要深入了解Redis集群的工作原理和最佳实践。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值