写这篇文章呕心沥血,牺牲了较多时间,希望能对你有所帮助
概念:
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave已读为主。
默认情况下,每台Redis服务器都是主节点;
且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
主从复制的作用主要包括:
1,数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
2,故障恢复:当主节点出现问题时,可以用从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
3,负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Rediss数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
4,高可用(集群)基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
一般来说,要将Redis运用于工程项目中,只使用一台Redis是万万不能的(宕机),原因如下:
1,从结构上,单个Redis服务器会发生单点故障,并且一台服务器需要处理所有的请求负载,压力较大;
2,从容量上,单个Redis服务器内存容量有限,就算一台Redis服务器内存容量为256G,也不能将所有内存作为Redis存储内存,一般来说单台Redis最大使用内存不应该超过20G。
电商网站上的商品,一般都是一次上传,无数次浏览的,就是读多写少。
主从复制,读写分离!80%的情况下都是在进行读 *** 作!减缓服务器的压力!架构中经常使用!最低是一主二从!
环境配置
只配置从库,不用配置主库(Redis本身就认为自己是主库)
主从复制(一主二从) 一台服务器搭建
1,搭建集群建议创建一个redis-cluster文件夹,方便管理
mkdir redis-cluster
2,上传redis-6.2.6.tar.gz。
官网下载地址:https://redis.io/download
去官网下载然后上传到服务器。
3,解压,完成单机安装
[root@instance-ou4346s0 software]# tar -zxvf redis-6.2.6.tar.gz mv redis-6.2.6 /usr/local/lixiaoxing/redis-cluster/ //移动到这个目录下 mv redis-6.2.6/ redis-6381 //修改名称 安装gcc环境 由于redis是C语言编写的,它的运行需要环境,因此我们需要先安装gcc,anan,安装命令如下 yum install gcc-c++ 进行编译与安装 cd /usr/local/lixiaoxing/redis-cluster/redis-6381 make //对解压后的文件进行编译 cd ./src //进入到 redis-5.0.0/src 文件目录下 make install //进行redis安装
完成如下
4,为了方便管理,将redis文件中的conf配置文件和常用命令移动在统一文件中
(1)创建bin文件夹
mkdir bin
(2) 将安装好的redis-6.2.4修改为redis-6381方便维护
将redis-6381目录下的 redis.conf 移动到 redis-6381目录下的bin文件夹下
将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到 /usr/local/redis-5.0.0/bin/ 目录下
[root@instance-ou4346s0 redis-6381]# mv redis.conf bin [root@instance-ou4346s0 redis-6381]# cd src/ //进入redis-5.0.0目录下的src文件夹下 //将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到/usr/local/lixiaoxing/redis-cluster/redis-6381/bin/ [root@instance-ou4346s0 src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/lixiaoxing/redis-cluster/redis-6381/bin/ 修改配置 [root@instance-ou4346s0 redis-6381]# cd bin [root@instance-ou4346s0 bin]# vim redis.conf 编辑 redis.conf配置文件,设置后台启动redis服务
(3)把文件中的daemonize属性改为yes(表明需要在后台运行)
(4)编辑 redis.conf配置文件,开启redis远程访问服务
(1)把 redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。
(2)把 redis.conf配置文件中的 protected-mode 设置成no(默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)
(3)编辑 redis.conf配置文件,修改Redis默认密码 (默认密码为空)
在配置文件中找到这一行 # requirepass foobared,删除前面的注释符号#,并把foobared修改成自己的密码 或者 另起一行 requirepass 自己的密码
(4)端口号改为6381
5,启动服务
[root@instance-ou4346s0 bin]# ./redis-server redis.conf
查看redis是否有进程
单机版完成
安装完成,查看当前的库的信息
启动redis服务 ./redis-cli //连接 服务端:./redis-server --port 端口号 如果更换端口号了就输入这个指令 client端:./redis-cli -p 端口号 -h 127.0.0.1 NOAUTH Authentication required. //如果连接出现这个指令这是需要登录, auth 123456 127.0.0.1:6379>clear //清除一下屏幕 127.0.0.1:6379> info replication //输入指令查看当前库的信息 NOAUTH Authentication required. //出现报错,输入redis的当前密码 127.0.0.1:6379> auth 123456 //输入密码 OK 127.0.0.1:6379> info replication //再次启动 # Replication role:master // 主节点 connected_slaves:0 //连接的从机 0 master_failover_state:no-failover master_replid:fbdfc1384c1ed87a0bf85ffde924714e4ff3a728 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
6,做一下日志的配置,方便以后查看
(1),配置 " logfile “这是日志的存放地方
(2),配置dbfilename 修改db的名称
(3),配置一下” pidfile "
保存!
7,在redis-cluster 目录中把redis名称修改为 redis-6381 然后复制两份,分别修改名称为redis-6382,redis-6383,同时修改每个redis.conf下的端口号,为6381,6382,6383。
修改logfile 等配置… 然后启动redis
cp redis-6381/ redis-6382 -r cp redis-6381/ redis-6383 -r
启动Redis
启动以后,现在就开始配置一主二从模式.
./redis.cli 或者 [root@instance-ou4346s0 bin]# ./redis-cli -p 6381 端口号 127.0.0.1:6381> clear 127.0.0.1:6381> info replication NOAUTH Authentication required. 从机登录授权 auth 密码 //用这个指令
6381
6382
6383
随意指定其他两台redis服务器为从机,6381为主机 在6382和6383上 使用SLAVEOF 127.0.0.1 6381 配置2台从机器指定127.0.0.1:6381为主机 当然通过命令行的方式来配置主机,只是临时配置,如果要从Redis启动时就配置好需连接的主机,就需要修改配置文件,的主从配置中的replicaof即可
6381
127.0.0.1:6381> info replication # Replication role:master //角色 主机 connected_slaves:2 //两个从机 slave0:ip=127.0.0.1,port=6383,state=online,offset=168,lag=0 //从机信息 slave1:ip=127.0.0.1,port=6382,state=online,offset=168,lag=0 master_failover_state:no-failover master_replid:634ba5af8b23268c22bc1a3b39b6d7b215ba5d4a master_replid2:0000000000000000000000000000000000000000 master_repl_offset:168 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:168 127.0.0.1:6381>
6382
127.0.0.1:6382> info replication # Replication role:slave //角色从机 master_host:127.0.0.1 //主机信息 master_port:6381 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_repl_offset:238 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:634ba5af8b23268c22bc1a3b39b6d7b215ba5d4a master_replid2:0000000000000000000000000000000000000000 master_repl_offset:238 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:57 repl_backlog_histlen:182
6383同上
注意:
这种配置从机重启以后会自动变成主机,所以想要永久的就要去从机配置文件redis.conf
配置文件配置永久(这里需要注意,如果配置了密码,建议每个redis这里都要写上密码,这样哨兵部分才不会出错)
配置主机地址,有密码也要配置密码
replicaof
masterauth
主机密码这样写最好
配置成功保存退出,并查看当前从机,是否配置成功,并关闭,重启,查看是否重启后从机角色不变。从机角色不变,配置成功。
细节:
主机可读可写,从机只能读!主机中所有的信息和数据,都会自动被从机保存
如果我们尝试从机中去存数据的话,会报错
测试:
(1)主机断开连接,从机依旧连接到主机,但是没有写 *** 作,这个时候,主机如果回来了,从机依旧可以直接获取到主机写的信息
(2)如果是使用命令行,来配置的主从,重启以后从机都会变成主机!但是只要变为从机以后,立马就会从主机中获取值!
主从复制原理
(1)Slave启动成功连接到Master后会发送一个sync同步命令
(2)Master接收到命令,启动后台的存盘进程,同时收集所有接收到用于修改数据集命令,在后台进程执行完毕之后整个数据文件到 slave,并完成一次完全同步
(3)全量复制:而slave服务在接收到数据文件数据后,将其存盘并加载到内存中
(4)增量复制:Master继续将新的所有收集的修改命令依次传给slave,完成同步
(5)只要重新连接master,一次完成同步(全量复制)将被自动执行
哨兵作用
- 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器
当哨兵基础到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他从服务器,修改配置文件让它们切换主机
单哨兵
主从切换技术方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这需要人工干预,还会造成一段时间内服务不可用,Redis从2.8开始正式提供了Sentinel(哨兵模式)来解决这个问题
1,配置单哨兵模式来监管redis 。
(1)在redis-cluster目录下创建redis-sentinel方便方便管理哨兵
从一个redis目录的src目录中把redis-sentinel 和 redis目录下的sentinel.conf 复制到redis-sentinel
注意:如果主机此时回来,只能归并到新的主机下,当做从机,这就是哨兵模式的规则!
注意:此报错是密码没有配置 Next failover delay: I will not start a failover before Thu Nov 25 21:04:25 2021
按需配置: 一般配置连接,和主密码,日志位置,daemonize…
# Example sentinel.conf # 哨兵sentinel实例运行的端口 默认26379 port 26379 # 哨兵sentinel的工作目录 dir /tmp # 哨兵sentinel监控的redis主节点的 ip port # master-name 可以自己命名的主节点名字 只能由字母A-z、数字0-9 、这三个字符".-_"组成。 # quorum 当这些quorum个数sentinel哨兵认为master主节点失联 那么这时 客观上认为主节点失联了 # sentinel monitorsentinel monitor mymaster 127.0.0.1 6379 1 //配置连接 # 当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码 # 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码 # sentinel auth-pass sentinel auth-pass mymaster 12345678 -主密码,不设置的话不能动态切换 # 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒 # sentinel down-after-milliseconds sentinel down-after-milliseconds mymaster 30000 # 这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步, 这个数字越小,完成failover所需的时间就越长, 但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。 可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。 # sentinel parallel-syncs sentinel parallel-syncs mymaster 1 # 故障转移的超时时间 failover-timeout 可以用在以下这些方面: #1. 同一个sentinel对同一个master两次failover之间的间隔时间。 #2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。 #3.当想要取消一个正在进行的failover所需要的时间。 #4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了 # 默认三分钟 # sentinel failover-timeout sentinel failover-timeout mymaster 180000 # scriptS EXECUTION #配置当某一事件发生时所需要执行的脚本,可以通过脚本来通知管理员,例如当系统运行不正常时发邮件通知相关人员。 #对于脚本的运行结果有以下规则: #若脚本执行后返回1,那么该脚本稍后将会被再次执行,重复次数目前默认为10 #若脚本执行后返回2,或者比2更高的一个返回值,脚本将不会重复执行。 #如果脚本在执行过程中由于收到系统中断信号被终止了,则同返回值为1时的行为相同。 #一个脚本的最大执行时间为60s,如果超过这个时间,脚本将会被一个SIGKILL信号终止,之后重新执行。 #通知型脚本:当sentinel有任何警告级别的事件发生时(比如说redis实例的主观失效和客观失效等等),将会去调用这个脚本, 这时这个脚本应该通过邮件,SMS等方式去通知系统管理员关于系统不正常运行的信息。调用该脚本时,将传给脚本两个参数, 一个是事件的类型, 一个是事件的描述。 如果sentinel.conf配置文件中配置了这个脚本路径,那么必须保证这个脚本存在于这个路径,并且是可执行的,否则sentinel无法正常启动成功。 #通知脚本 # sentinel notification-script sentinel notification-script mymaster /var/redis/notify.sh # 客户端重新配置主节点参数脚本 # 当一个master由于failover而发生改变时,这个脚本将会被调用,通知相关的客户端关于master地址已经发生改变的信息。 # 以下参数将会在调用脚本时传给脚本: # # 目前 总是“failover”, # 是“leader”或者“observer”中的一个。 # 参数 from-ip, from-port, to-ip, to-port是用来和旧的master和新的master(即旧的slave)通信的 # 这个脚本应该是通用的,能被多次调用,不是针对性的。 # sentinel client-reconfig-script sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
测试:
我们停了6381 sentinel 会自动选取一个从机做服务器,最开始的主机重启后,只能做配置做从机
被sentinel选取的从机做主机后,配置文件也会发生改变,所以不用担心。
3882:X 25 Nov 2021 22:58:31.771 # +failover-end master mymaster 127.0.0.1 6381 3882:X 25 Nov 2021 22:58:31.771 # +switch-master mymaster 127.0.0.1 6381 127.0.0.1 6383 3882:X 25 Nov 2021 22:58:31.771 * +slave slave 127.0.0.1:6382 127.0.0.1 6382 @ mymaster 127.0.0.1 6383 3882:X 25 Nov 2021 22:58:31.771 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6383
多哨兵
单哨兵存在一个问题,如果最高哨兵死了呢,那么就没人进行监控了,所以在生产机中通常会存在多个哨兵同时监控Redis,并且多个哨兵也相互监控
假设主服务器宕机,哨兵1先检测到这个结果,系统并且不会马上进行failover过程,仅仅是哨兵1主观认为主服务器不可用,这现象称为主观下线,当其它哨兵也检测到主服务不可用,并且数量达到一定值,那么这些哨兵之间就会进行一次投票,投票的由一个哨兵发起,进行failover(故障转移)操作,切换成功后,就会通过发布订阅模式,让各哨兵把自己监控的从服务器实现切换主机客观下线。
多哨兵搭建
1,这里为了方便管理建议就在redis-sentinel目录下创建一个redis-sentinel-1 把刚才的单机sentinel配置文件复制到这个目录下,
[root@instance-ou4346s0 redis-sentinel]# mkdir redis-sentinel-1 //创建 mkdir redis-sentinel-1 [root@instance-ou4346s0 redis-sentinel]# mv redis-sentinel redis-sentinel-1/ //将redis-sentinel 和sentiel.cof 移动到redis-sentinel-1中
2,配置sentiel.conf redis-sentinel-2 的端口为26380, redis-sentinel-3为26381 日志文件和pid文件也要更换
分别配置
修改内容: # 添加守护进程模式 daemonize yes # 添加指明日志文件名 logfile "/opt/redis/6379/sentinel26379.log" # 修改工作目录 dir "/opt/redis/6379" # 修改启动端口 port 26379 # 关闭保护模式 protected-mode no # 修改sentinel monitor sentinel monitor redis-test-master 192.168.29.128 6379 2 # 将配置文件中mymaster全部替换redis-test-master 依次修改26380,26381配置说明: redis-test-master:监控主数据的名称,自定义即可,可以使用大小写字母和“.-_”符号 192.168.29.128:监控的主数据库的IP 6379:监控的主数据库的端口 2:最低通过票数 //端口默认为26379。 port:26379 //关闭保护模式,可以外部访问。 protected-mode:no //设置为后台启动。 daemonize:yes //日志文件。 logfile "/usr/local/lixiaoxing/redis-cluster/redis-sentinel/sentinel.log" //pid位置 pidfile "/usr/local/lixiaoxing/redis-cluster/redis-sentinel/redis-sentinel.pid" //指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。 sentinel monitor mymaster 127.0.0.1 6382 2 //当在Redis实例中开启了requirepass,这里就需要提供密码。 sentinel auth-pass mymaster 12345678 //这里设置了主机多少秒无响应,则认为挂了。 sentinel down-after-milliseconds mymaster 30000 //主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。 snetinel parallel-syncs mymaster 1 //故障转移的超时时间,这里设置为三分钟。 sentinel failover-timeout mymaster 180000
监控设置成两个投票就主观下线
哨兵模式常用命令
1.查看sentinel的基本状态信息 127.0.0.1:26379> INFO 2.列出所有被监视的主服务器,以及这些主服务器的当前状态 127.0.0.1:26379> SENTINEL MASTERS redis-test-master 3.列出给定主服务器的所有从服务器,以及这些从服务器的当前状态 127.0.0.1:26379> SENTINEL SLAVES redis-test-master 4.返回给定名字的主服务器的IP地址和端口号 127.0.0.1:26379> SENTINEL GET-MASTER-ADDR-BY-NAME redis-test-master 5.重置所有名字和给定模式pattern相匹配的主服务器,重置操作清除主服务器目前的所有状态,包括正在执行中的故障转移,并移除目 前已经发现和关联的,主服务器的所有从服务器和Sentinel 127.0.0.1:26379> SENTINEL RESET redis-test-master 6.当主服务器失效时,在不询问其他Sentinel意见的情况下,强制开始一次自动故障迁移,但是它会给其他Sentinel发送一个最新的配 置,其他sentinel会根据这个配置进行更新 127.0.0.1:26379> SENTINEL FAILOVER redis-test-master 7.查看其它哨兵信息 127.0.0.1:26379> SENTINEL sentinels redis-test-master
出现以上以后 sentinel集群配置成功
sentinel的log日志查看
26379日志
26380日志
26381日志
springboot 整合一主二从加哨兵
server: port: 8081 # 单节点+哨兵 spring: redis: sentinel: nodes: 192.168.109.160:26379,192.168.109.163:26379,192.168.109.164:26379 password: root master: mymaster password: root # 单节点 #spring: # redis: # host: 192.168.109.160 # port: 6379 # timeout: 10000 # password: rootRedis集群搭建(3主3从)
本文是在一台服务器上搭建的,如果需要分布式部署的,也可参考搭建
1,准备一台服务器,开启端口号6381,6382,6383,6384,6385,6386
2,下载解压安装一个redis,具体操作看前面的单机安装。然后创建一个redis-cluster的文件目录,把单机redis移动到这个目录中,并且修改名称为6381
[root@instance-ou4346s0 lixiaoxing]# mv redis-6.2.6/ redis-cluster/ //移动 [root@instance-ou4346s0 redis-cluster]# mv redis-6.2.6/ redis-6381 //修改名称
3,开始安装
(1) 如果centos中没有gcc环境的话,则需要安装gcc环境,如果有直接下一步
[root@localhost tools]# yum install -y gcc
(2)进入到redis-6381中,开始编译安装
[root@localhost tools]# cd redis-6381/ [root@localhost redis-6381]# make [root@localhost redis-6381]# cd src [root@instance-ou4346s0 src]# make install [root@instance-ou4346s0 redis-6381]# echo $? //执行这句如果出现0编译成功 0
(3)为了方便管理在redis-6381目录下创建 bin目录 ,log目录,data目录
[root@instance-ou4346s0 redis-6381]# mkdir bin && mkdir data &&mkdir log
(4)将redis-6381/src目录下的redis-server,redis-check-aof,redis-check-rdb,redis-cli,mkreleasehdr.sh 移动到redis-6381/bin目录下,在将reids-6381下的redis.conf也移动到bin
[root@instance-ou4346s0 src]# mv redis-server redis-check-aof redis-check-rdb redis-cli mkreleasehdr.sh /usr/local/lixiaoxing/redis-cluster/redis-6381/bin [root@instance-ou4346s0 redis-6381]# mv redis.conf bin/
(5)配置master 6381下的redis.conf
[root@instance-ou4346s0 bin]# vim redis.conf # 绑定服务器域名或IP地址 bind redis-166 //这里如果多台服务器部署的话绑定的ip+端口 如果是单台的话建议注销掉 # 关闭远程保护 protected-mode no # 设置端口,区分集群中Redis的实例 port 6381 # 后台运行 daemonize yes # pid进程文件名,以端口号命名 pidfile /usr/local/lixiaoxing/redis-cluster/redis-6381/data/redis_6381.pid # 日志文件名称,以端口号为目录来区分 logfile "/usr/local/lixiaoxing/redis-cluster/redis-6381/data/redis_6381.log" # 数据文件存放地址,以端口号为目录名来区分 dir /usr/local/lixiaoxing/redis-cluster/redis-6381/data # 启用集群 cluster-enabled yes # 配置每个节点的配置文件,同样以端口号为名称 cluster-config-file nodes_7001.conf # 配置集群节点的超时时间 cluster-node-timeout 15000 # 启动AOF增量持久化策略 appendonly yes # 保存名称 appendfilename "appendonly-6381.aof" # 发生改变,则记录日志 appendfsync always
配置masterr 6382下的redis.conf (把redis-6381复制成redis-6382)
[root@instance-ou4346s0 redis-cluster]# cp redis-6381/ redis-6382 -r //复制 # 绑定服务器域名或IP地址 bind redis-166 # 关闭远程保护 protected-mode no # 设置端口,区分集群中Redis的实例 port 6382 # 后台运行 daemonize yes # pid进程文件名,以端口号命名 pidfile /usr/local/lixiaoxing/redis-cluster/redis-6382/data/redis_6382.pid # 日志文件名称,以端口号为目录来区分 logfile "/usr/local/lixiaoxing/redis-cluster/redis-6382/log/redis_6382.log" # 数据文件存放地址,以端口号为目录名来区分 dir /usr/local/lixiaoxing/redis-cluster/redis-6382/data # 启用集群 cluster-enabled yes # 配置每个节点的配置文件,同样以端口号为名称 cluster-config-file nodes-6382.conf # 配置集群节点的超时时间 cluster-node-timeout 15000 # 启动AOF增量持久化策略 appendonly yes # 保存名称 appendfilename "appendonly-6382.aof" # 发生改变,则记录日志 appendfsync always
然后按需复制,6381 复制成6383,6385。 6382复制成6384,6386并修改每个redis的配置文件。
一个一个启动很麻烦,可以写脚本启动使用touch命令创建一个运行脚本
其中redis-cli --cluster create命令是创建集群的命令
[root@instance-ou4346s0 redis-cluster]# touch start-redis-cluster.sh //创建脚本 [root@instance-ou4346s0 redis-cluster]# chmod +x start-redis-cluster.sh //变成可执行脚本 [root@instance-ou4346s0 redis-cluster]# vim start-redis-cluster.sh //编辑脚本 //编辑内容 cd /usr/local/lixiaoxing/redis-cluster/redis-6381/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6382/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6383/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6384/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6385/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6386/bin ./redis-server redis.conf sleep 5 cd /usr/local/lixiaoxing/redis-cluster/redis-6386/bin ./redis-cli --cluster create 192.168.16.4:6381 192.168.16.4:6383 192.168.16.4:6385 192.168.16.4:6382 192.168.16.4:6384 192.168.16.4:6386 --cluster-replicas 1 编辑完成保存并退出 wq! 启动 [root@instance-ou4346s0 redis-cluster]# ./start-redis-cluster.sh //开启了redis集群
yes 同意
命令测试一下
[root@instance-ou4346s0 bin]# ./redis-cli -c -h 180.76.242.96 -p 6381 180.76.242.96:6381> set 1 hello redis //输入以后出现以下数据代表成功 -> Redirected to slot [9842] located at 192.168.16.4:6383 OK [root@instance-ou4346s0 bin]# ./redis-cli -c -h 180.76.242.96 -p 6386 //取出来 180.76.242.96:6386> get 1 -> Redirected to slot [9842] located at 192.168.16.4:6383 "li" 成功----------至此集群搭建完毕,希望能帮到你!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)