2020-10-23 周作业

1、RDB和AOF的优缺点

RBD优点:

  1. RDB快照保存的是某个时间点的数据,可以通过脚本执行redis指令bgsave(非阻塞,fork出子进程后台执行),或者save(会阻塞写造作,不推荐)命令自定义时间点备份,可以保留多个备份,当出现问题可以恢复到不同时间点的版本,很适合备份,而且此文件格式也支持很多第三方工具进行的后续数据分析
  2. RDB快照可以最大化redis的性能,父进程在保存RDB文件时唯一要做的是fork出一个子进程,然后这个子进程就会处理接下来的所有保存工作,父进程无需执行任何磁盘I/O操作
  3. RDB在大量数据,比如几个G的数据,恢复速度比AOF快

RDB缺点:
1.不能实时保存数据,可能会丢失上一次执行RDB备份到当前内存数据,这种情况一旦发生故障宕机,就可能丢失好几分钟的数据。
2.当数据量非常大的时候,从父进程fork子进程进行保存RDB文件时候需要耗一些时间,可能是毫秒或者秒,取决于磁盘I/O性能。

AOF优点:

  1. AOF和RDB一样使用了写时复制机制。AOF默认为每秒fsnyc一次,即将执行的命令保存到AOF文件中,这样如果Redis服务器发生故障时候最多只对视1秒内的数据,也可以设置不同的fsnyc策略always,也就是每次执行命令的时候都会执行fsnyc,fsync会在后台执行线程,所以主线程可以继续处理用户的正常请求而不会受到AOF写入的影响,进行恢复时候,会默认AOF文件0优先级高于RDB文件,会默认使用AOF快照恢复。
  2. 安全性相对较高。根据所使用的fsync策略每秒都会执行一次fsync,即使在每秒都执行fsync的情况下,依然不会影响到主线程的I/O性能。
  3. 由于该机制对日志文件的写入操作采用的是append(追加模式),因此在写入过程中不需要seek(请求),即使服务器宕机,也不会破坏日志,文件中已经存在的内容,然而如果本次操作只是写入了一半数据就出系统故障了,没关系,在redis下次启动之前,可以通过redis-check-aof工具来解决数据一致性的问题。
  4. Redis可以在AOF文件体积变得过大时候,自动地在后台对AOF进行重写。重写后的新AOF文件包含了恢复当前数据集所需的最小命令集合。整个重写操作是绝对安全的,因为Redis在创建新 AOF文件的过程中,append模式不断的将修改数据追加到现有的 AOF文件里面,即使重写过程中发生停机,现有的 AOF文件也不会丢失。而一旦新AOF文件创建完毕,Redis就会从旧AOF文件切换到新AOF文件,并开始对新AOF文件进行追加操作。
  5. AOF包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。

AOF缺点:
1.即使有些操作是重复的也会全部记录下来所以AOF文件要大于RDB文件
2.AOF在恢复大数据集的时候速度比RDB速度要慢
3.根据fsync策略不同,AOF速度可能会慢于RDB
4.BUG出现的可能性更多

2、master和slave同步过程

实验环境:
1.三台centos7(非强制,但是尽量保持redis版本一致。严格讲应该是一定保持一致!)
centos-master
centos-slave1
centos-slave2
2.关闭防火墙、Selinux

#1.分别安装好redis服务,并设置MASTER服务配置文件。(也可以多实例安装)

[root@MASTER ~]#yum -y install redis
[root@Slave1 ~]#yum -y install redis
[root@Slave2 ~]#yum -y install redis
[root@MASTER ~]#vim /etc/redis.conf
bind 0.0.0.0
requirepass 123456
[root@MASTER ~]#systemctl restart redis
[root@MASTER ~]#ss -ntl 
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      100    127.0.0.1:25                         *:*                  
LISTEN      0      128            *:6379                       *:*                  
LISTEN      0      128            *:22                         *:*                  
LISTEN      0      100        [::1]:25                      [::]:*                  
LISTEN      0      128         [::]:22                      [::]:*                  

[root@MASTER ~]#redis-cli -a 123456
127.0.0.1:6379> keys *
  1) "key35"
  2) "key19"
  3) "key36"
  4) "key13"
  5) "key48"
  6) "key99"
  127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=10.0.0.17,port=6379,state=online,offset=18424,lag=1
slave1:ip=10.0.0.37,port=6379,state=online,offset=18424,lag=0
master_repl_offset:18424
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:18423

#2.设置Slave redis服务器配置,两个slave都一样的配置

[root@Slave1 ~]#vim /etc/redis.conf
bind 0.0.0.0
slaveof 10.0.0.7 6379     #centos8 slaveof 更改为 replicaof 
masterauth 123456
[root@Slave1 ~]#systemctl restart redis

[root@Slave1 ~]#ss -ntl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      100    127.0.0.1:25                         *:*                  
LISTEN      0      128            *:6379                       *:*                  
LISTEN      0      128            *:22                         *:*                  
LISTEN      0      100        [::1]:25                      [::]:*                  
LISTEN      0      128         [::]:22                      [::]:*   

SLAVE2步骤同上

[root@slave1 ~]#redis-cli -a 123456
127.0.0.1:6379> keys *
  1) "key35"
  2) "key19"
  3) "key36"
  4) "key13"
  5) "key48"
  6) "key99"
  7) "key27"
  8) "key60"
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:10.0.0.7
master_port:6379
master_link_status:up
master_last_io_seconds_ago:9
master_sync_in_progress:0
slave_repl_offset:17916
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0


[root@slave2 ~]#redis-cli -a 123456
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:10.0.0.7
master_port:6379
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:17958
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379> keys *
  1) "key35"
  2) "key19"
  3) "key36"
  4) "key13"
  5) "key48"
  6) "key99"

3、哨兵的使用和实现机制

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

Sentinel原理:
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

sentinel 进程是用于监控redis集群中Master主服务器工作的状态,再Master主服务器发生故障的时候,可以实现Master和Slave服务器之间的切换,保证系统高可用,哨兵是一种分布式系统,可以在一个架构,这些进程使用流言协议(gossip protocols)来接收关于Master主服务器是否下线的信息,并使用投票协议(AgreementProtocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。

Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:

  1. 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
  2. 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
  3. 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master,并让失效Master的其他Slave改为复制新的Master;当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。

Redis-Sentinel实现机制:
利用ping命令,让Redis服务器返回监控其运行状态检查是否存活,包括主服务器和从服务器。
当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控。各个哨兵之间还会进行监控,这样就形成了多哨兵模式。
用文字描述一下故障切换(failover)的过程。假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行failover操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。

4、redis cluster集群创建和使用

在这里插入图片描述
#集群节点
10.0.0.8
10.0.0.18
10.0.0.28
10.0.0.38
10.0.0.48
10.0.0.58
创建redis cluster集群的前提:

  1. 每个redis node节点采用相同的硬件配置,相同的密码,相同的redis版本。
  2. 每个节点必须开启的参数
    cluster-enabled yes #必须开启集群状态,开启后redis进程会有cluster显示。
    cluster-config-file nodes-6380.conf #此文件有redis cluster 集群自动创建和维护,不需要任何手动操作
  3. 所有redis服务器必须没有任何数据 ,原因:因为cluster要分配槽位,如果有数据,那个地方就会被占用,槽位分配不了。
  4. 先启动为单机redis且没有任何key value

原生命令手动部署

#在所有节点上都执行下面相同操作
[root@Timewalk ~]#yum -y install redis
#利用sed -e 多次修改替换配置文件
[root@Timewalk ~]#sed -i.bak -e 's/bind 127.0.0.1/bind 0.0.0.0/' -e
'/masterauth/a masterauth 123456' -e '/# requirepass/a requirepass 123456' -e
'/# cluster-enabled yes/a cluster-enabled yes' -e '/# cluster-config-file nodes-
6379.conf/a cluster-config-file nodes-6379.conf' -e '/cluster-require-full-
coverage yes/c cluster-require-full-coverage no' /etc/redis.conf
[root@Timewalk ~]#systemctl enable --now redis
[root@Timewalk ~]ss -ntl

在这里插入图片描述
执行meet 操作实现相互通信
在任一节点上和其它所有节点进行meet通信

[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster
meet 10.0.0.18 6379
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster
meet 10.0.0.28 6379
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster
meet 10.0.0.38 6379
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster
meet 10.0.0.48 6379
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster
meet 10.0.0.58 6379

#可以看到所有节点之间可以相互连接通信

[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster nodes
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 10.0.0.8:6379@16379 myself,master - 0
1602515365000 3 connected
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 10.0.0.18:6379@16379 master - 0
1602515367093 1 connected
cb20d58870fe05de8462787cf9947239f4bc5629 10.0.0.38:6379@16379 master - 0
1602515365057 0 connected
779a24884dbe1ceb848a685c669ec5326e6c8944 10.0.0.48:6379@16379 master - 0
1602515365000 4 connected
07231a50043d010426c83f3b0788e6b92e62050f 10.0.0.58:6379@16379 master - 0
1602515365000 5 connected
4f146b1ac51549469036a272c60ea97f065ef832 10.0.0.28:6379@16379 master - 0
1602515366074 2 connected

#查看当前状态

[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster info
cluster_state:fail
cluster_slots_assigned:0
cluster_slots_ok:0
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:0
cluster_current_epoch:5
cluster_my_epoch:3          集群数量,上课已经提前将主从搭建好了
cluster_stats_messages_ping_sent:584
cluster_stats_messages_pong_sent:145
cluster_stats_messages_meet_sent:8
cluster_stats_messages_sent:737
cluster_stats_messages_ping_received:145
cluster_stats_messages_pong_received:151
cluster_stats_messages_received:296

为各个master 节点指派槽位范围
创建脚本,便于创建节点位置

#创建添加槽位的脚本
[root@Timewalk ~]#cat addslot.sh
#!/bin/bash

host=$1
port=$2
start=$3
end=$4
pass=123456

for slot in `seq ${start} ${end}`;do
  echo slot:$slot
 redis-cli -h ${host} -p $port -a ${pass} --no-auth-warning cluster addslots
${slot}
done

#为三个master分配槽位,共16364/3=5,461.333333333333,平均每个master分配5,461个槽位
[root@Timewalk ~]#bash addslot.sh 10.0.0.8 6379 0 5461
[root@Timewalk ~]#bash addslot.sh 10.0.0.18 6379 5462 10922
[root@Timewalk ~]#bash addslot.sh 10.0.0.28 6379 10923 16383

#当第一个master分配完槽位后,可以看到下面信息
[root@Timewalk ~]#redis-cli -a 123456 --no-auth-warning cluster info
cluster_state:ok
cluster_slots_assigned:5462
cluster_slots_ok:5462
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:1
cluster_current_epoch:5
cluster_my_epoch:3
cluster_stats_messages_ping_sent:1234
cluster_stats_messages_pong_sent:782
cluster_stats_messages_meet_sent:8
cluster_stats_messages_sent:2024
cluster_stats_messages_ping_received:782
cluster_stats_messages_pong_received:801
cluster_stats_messages_received:1583

#当第一个master分配完槽位后,可以看到下面信息
[root@Timewalk ~]#redis-cli -a 123456 --no-auth-warning cluster nodes
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 10.0.0.8:6379@16379 myself,master - 0
1602516039000 3 connected 0-5461
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 10.0.0.18:6379@16379 master - 0
1602516044606 1 connected
cb20d58870fe05de8462787cf9947239f4bc5629 10.0.0.38:6379@16379 master - 0
1602516042000 0 connected
779a24884dbe1ceb848a685c669ec5326e6c8944 10.0.0.48:6379@16379 master - 0
1602516041575 4 connected
07231a50043d010426c83f3b0788e6b92e62050f 10.0.0.58:6379@16379 master - 0
1602516042585 5 connected
4f146b1ac51549469036a272c60ea97f065ef832 10.0.0.28:6379@16379 master - 0
1602516043595 2 connected

#分配槽位后可以创建key
[root@Timewalk ~]#redis-cli -a 123456 --no-auth-warning set name zhang
(error) MOVED 5798 10.0.0.18:6379
[root@Timewalk ~]#redis-cli -h 10.0.0.18 -a 123456 --no-auth-warning set name
zhang
OK
[root@Timewalk ~]#redis-cli -h 10.0.0.18 -a 123456 --no-auth-warning get name
"zhang"

#当所有的三个master分配完槽位后,可以看到下面信息
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster nodes
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 10.0.0.8:6379@16379 myself,master - 0
1602516633000 3 connected 0-5461
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 10.0.0.18:6379@16379 master - 0
1602516635862 1 connected 5462-10922
cb20d58870fe05de8462787cf9947239f4bc5629 10.0.0.38:6379@16379 master - 0
1602516635000 0 connected
779a24884dbe1ceb848a685c669ec5326e6c8944 10.0.0.48:6379@16379 master - 0
1602516635000 4 connected
07231a50043d010426c83f3b0788e6b92e62050f 10.0.0.58:6379@16379 master - 0
1602516634852 5 connected
4f146b1ac51549469036a272c60ea97f065ef832 10.0.0.28:6379@16379 master - 0
1602516636872 2 connected 10923-16383

#当所有的三个master分配完槽位后,可以看到下面信息
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning 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:5
cluster_my_epoch:3
cluster_stats_messages_ping_sent:1832
cluster_stats_messages_pong_sent:1375
cluster_stats_messages_meet_sent:8
cluster_stats_messages_sent:3215
cluster_stats_messages_ping_received:1375
cluster_stats_messages_pong_received:1399
cluster_stats_messages_received:2774

指定各个节点的主从关系

#通过上面cluster nodes 查看master的ID信息,执行下面操作,将对应的slave 指定相应的master节
点,实现三对主从节点
[root@Timewalk ~]#redis-cli -h 10.0.0.38 -a 123456 --no-auth-warning cluster
replicate a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab
OK
[root@Timewalk ~]#redis-cli -h 10.0.0.48 -a 123456 --no-auth-warning cluster
replicate 97c5dcc3f33c2fc75c7fdded25d05d2930a312c0
OK
[root@Timewalk ~]#redis-cli -h 10.0.0.58 -a 123456 --no-auth-warning cluster
replicate 4f146b1ac51549469036a272c60ea97f065ef832
OK

#在第一组主从节点创建成功后,可以看到下面信息
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster nodes
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 10.0.0.8:6379@16379 myself,master - 0
1602517124000 3 connected 0-5461
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 10.0.0.18:6379@16379 master - 0
1602517123000 1 connected 5462-10922
cb20d58870fe05de8462787cf9947239f4bc5629 10.0.0.38:6379@16379 slave
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 0 1602517125709 3 connected
779a24884dbe1ceb848a685c669ec5326e6c8944 10.0.0.48:6379@16379 master - 0
1602517124689 4 connected
07231a50043d010426c83f3b0788e6b92e62050f 10.0.0.58:6379@16379 master - 0
1602517123676 5 connected
4f146b1ac51549469036a272c60ea97f065ef832 10.0.0.28:6379@16379 master - 0
1602517123000 2 connected 10923-16383


#在第一组主从节点创建成功后,可以看到下面信息
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.0.0.38,port=6379,state=online,offset=322,lag=1
master_replid:7af8303230e2939cc22943e991f06c6409356c6e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:322
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:322

[root@Timewalk ~]#redis-cli -h 10.0.0.38 -a 123456 --no-auth-warning info replication
# Replication
role:slave
master_host:10.0.0.8
master_port:6379
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
slave_repl_offset:336
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:7af8303230e2939cc22943e991f06c6409356c6e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:336
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:336


#所有三组主从节点创建成功后,可以看到最终结果
[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning cluster nodes
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 10.0.0.8:6379@16379 myself,master - 0
1602517611000 3 connected 0-5461
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 10.0.0.18:6379@16379 master - 0
1602517614000 1 connected 5462-10922
cb20d58870fe05de8462787cf9947239f4bc5629 10.0.0.38:6379@16379 slave
a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab 0 1602517615000 3 connected
779a24884dbe1ceb848a685c669ec5326e6c8944 10.0.0.48:6379@16379 slave
97c5dcc3f33c2fc75c7fdded25d05d2930a312c0 0 1602517616011 4 connected
07231a50043d010426c83f3b0788e6b92e62050f 10.0.0.58:6379@16379 slave
4f146b1ac51549469036a272c60ea97f065ef832 0 1602517613966 5 connected
4f146b1ac51549469036a272c60ea97f065ef832 10.0.0.28:6379@16379 master - 0
1602517617034 2 connected 10923-16383


[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning 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:5
cluster_my_epoch:3
cluster_stats_messages_ping_sent:2813
cluster_stats_messages_pong_sent:2346
cluster_stats_messages_meet_sent:8
cluster_stats_messages_sent:5167
cluster_stats_messages_ping_received:2346
cluster_stats_messages_pong_received:2380
cluster_stats_messages_received:4726


[root@Timewalk ~]#redis-cli -h 10.0.0.8 -a 123456 --no-auth-warning info replication
# Replication
role:master
connected_slaves:1
slave0:ip=10.0.0.38,port=6379,state=online,offset=1022,lag=1
master_replid:7af8303230e2939cc22943e991f06c6409356c6e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1022
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1022

查看主从节关系及槽位信息

[root@Timewalk ~]#redis-cli -h 10.0.0.28 -a 123456 --no-auth-warning cluster slots
1) 1) (integer) 10923
 2) (integer) 16383
 3) 1) "10.0.0.28"
   2) (integer) 6379
   3) "4f146b1ac51549469036a272c60ea97f065ef832"
 4) 1) "10.0.0.58"
   2) (integer) 6379
   3) "07231a50043d010426c83f3b0788e6b92e62050f"
2) 1) (integer) 0
 2) (integer) 5461
 3) 1) "10.0.0.8"
   2) (integer) 6379
   3) "a177c5cbc2407ebb6230ea7e2a7de914bf8c2dab"
 4) 1) "10.0.0.38"
   2) (integer) 6379
   3) "cb20d58870fe05de8462787cf9947239f4bc5629"
3) 1) (integer) 5462
 2) (integer) 10922
 3) 1) "10.0.0.18"
   2) (integer) 6379
   3) "97c5dcc3f33c2fc75c7fdded25d05d2930a312c0"
 4) 1) "10.0.0.48"
   2) (integer) 6379
   3) "779a24884dbe1ceb848a685c669ec5326e6c8944"

验证 redis cluster 访问

#-c 表示以集群方式连接
[root@Timewalk ~]#redis-cli -c -h 10.0.0.8 -a 123456 --no-auth-warning set
name zhang
OK
[root@Timewalk ~]#redis-cli -c -h 10.0.0.8 -a 123456 --no-auth-warning get
name
"zhang"

[root@Timewalk ~]#redis-cli  -h 10.0.0.8 -a 123456 --no-auth-warning get name
(error) MOVED 5798 10.0.0.18:6379
[root@Timewalk ~]#redis-cli  -h 10.0.0.18 -a 123456 --no-auth-warning get name
"zhang"
[root@Timewalk ~]#redis-cli  -h 10.0.0.28 -a 123456 --no-auth-warning get name
(error) MOVED 5798 10.0.0.18:6379
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页