Redis从不会到会

Redis介绍与安装:

1、什么是redis?

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。[1] 
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

2、redis安装详解

redis下载

redis目前发布了Stable (3.2)和Beta (4.0)两个主要版本,本文通过下载源码编译进行安装。

enter description here
redis下载地址

从上图可以看到,redis在github上的托管地址是:redis-github托管地址

下载

在终端输入:

$ git clone https://github.com/antirez/redis.git
  • 1

enter description here

make

我刚才将redis下载到了/home/admin/redis下面

enter description here

执行make

enter description here

编译完成

enter description here

可以执行make test,进行单元测试

$ sudo make test
  • 1

enter description here

执行make install

$ sudo make PREFIX=/usr/local/redis install
  • 1

enter description here

执行到这里,如果没有发现错误的话,就可以在终端输入

$ redis-server
  • 1

启动redis服务了,请注意下图中红色方框圈中的部分,这是告诉我们可以给redis制定一个conf文件的路径来让redis加载自定义的参数,/path/to/redis.conf需要改成我们自己的redis的配置文件。

enter description here

启动客户端

redis-server启动后,新开一个终端输入

$ redis-cli
  • 1

就可以启动一个客户端了,我们可以就可以链接上redis了。请注意在redis客户端链接的时候,我们其实是可以传递需要链接的redis服务器的ip地址和redis对应的端口的,这里我们先直接使用redis-cli默认的参数来链接本地的redis服务器。

enter description here

链接地址地址的redis服务

在终端中输入

$ redis-cli --help
  • 1

可以看到redis-cli支持的参数列表

admin@admin-pc:~/redis$ redis-cli --help
redis-cli 3.2.0

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
  -h <hostname>      Server hostname (default: 127.0.0.1).
  -p <port>          Server port (default: 6379).
  -s <socket>        Server socket (overrides hostname and port).
  -a <password>      Password to use when connecting to the server.
  -r <repeat>        Execute specified command N times.
  -i <interval>      When -r is used, waits <interval> seconds per command.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

因此,我们可以使用下面的命令

redis-cli -h 192.168.1.111 -p 6379
  • 1

来连接本地的redis服务。其中192.168.1.111是我电脑的内网ip地址,6379是redis默认的端口地址。

enter description here

给redis加密

上次出现的mongodb大规模的勒索事件,让我们知道数据安全的重要性了。redis提供了连接时的密码验证,默认的配置是没有密码的,更改密码如要在redis.conf文件下配置,上面我们说到了我们可以制定redis的配置文件的路径,在clone的redis的根文件夹下有一个redis.conf文件,这个就是我们需要的配置文件。

指定配置文件的路径

我们的make install步骤中,指定了redis的安装路径为/user/local/redis/, 
查看redis安装路径下有哪些东西,我们使用的redis-server命令就是来自于这个文件夹下。

enter description here

为了方面我们以后启动redis 服务器,我们在/user/local/redis/下新建文件夹etc存放我们的redis的配置文件。这里需要讲redis源码根目录下的redis.conf文件拷贝到新建的etc文件夹下。

$ sudo mkdir etc
$ sudo cp ~/redis/redis.conf etc/
$ tree
  • 1
  • 2
  • 3

enter description here

修改redis.conf下密码的配置

  1. 进入etc文件夹
$ cd etc
  • 1
  1. 使用vim或者gedit,编辑redis.conf下的requirepass配置,大概在.conf文件的500行的位置。

enter description here

将上图中的# requirepass foobared改成

requirepass 你想改的密码
#eg:requirepass admin123654
  • 1
  • 2

保存

利用配置好的redis.conf配置重新启动redis服务。

重新启动的时候,请保证没有其他的redis-server在运行。

$ cd /usr/local/redis/bin
$ ls
redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server
$ ./redis-server ../etc/redis.conf 
  • 1
  • 2
  • 3
  • 4

可以看到redis服务器已经启动了。

enter description here

连接redis

同样是使用redis-cli连接本机的redis服务,可以正常链接。

$ redis-cli
  • 1

enter description here

但是,如果想执行操作,就会发现redis会提示没有认证。

enter description here

这时候,我们就要用

auth admin123654#这里请替换成自己设置的密码
  • 1

enter description here

可以看到已经允许执行查询了。

注意事项

如果直接使用redis-sever redis.conf进行启动redis服务的话,你用Ctrl+C是不能够关闭redis服务的。(另外,CTRL+Z只是暂停当前进程。)

Redis的集群管理

这时候,我们可以使用/usr/local/redis/bin/下的redis-sentinel来启动redis集群。用ls -l可以看到,redis-sentinel其实就是一个指向redis-server的链接。

enter description here

用redis-sentinel启动redis

将redis源码下的sentinel.conf文件拷贝到usr/local/redis/etc/下。

sudo ./redis-sentinel ../etc/sentinel.conf
  • 1

这里需要sudo的原因是redis-sentinel需要sentinel.conf的写权限。

enter description here

可以看到已经可以启动了,这时候用CTRL+C发送KILL信号,就可以关闭redis集群管理器了。

enter description here

优化redis的启动方式

从上面的讲述中,我们需要在每次启动redis的时候,都要指定配置文件的路径,那么我们可以通过编写一个脚本来完成这件事情。 
我们可以在当前用户空间下的任意位置,编写一个redis.sh的脚本。

touch redis.sh
chmod u+x redis.sh
  • 1
  • 2

redis.sh的内容如下:

#!/bin/bash
cd /usr/local/redis/bin
echo "Use sudo to start your redis"
sudo ./redis-server ../etc/redis.conf
  • 1
  • 2
  • 3
  • 4

编辑完成后,

./redis.sh 
  • 1

就可以启动redis了

enter description here

还可以讲redis.sh添加到profile配置中。

export REDIS_HOME=/home/admin/
export PATH=$REDIS_HOME:$PATH
  • 1
  • 2

enter description here
保存后,执行

source ~/.profile
  • 1

使配置生效。 
在任意位置,启动中断后,执行

redis.sh
  • 1

就可以启动redis服务器了。

enter description here

搭建集群:

一 实验环境

这里为了方便搭建环境,所有节点都安装在同一台服务器上。

主从对应关系:


127.0.0.1:6382是127.0.0.1:6379的从节点。如:

二 实验步骤

2.1 用普通方式安装

2.1.1 准备节点

节点数量至少为6个才能保证组成完整高可用的集群。

每个节点都需要开启配置cluster-enabled yes,让redis运行在集群模式下。

2.1.1.1 下载源码,解压缩后编译源码

 wgethttp://download.redis.io/releases/redis-3.2.11.tar.gz

 tarxzf redis-3.2.11.tar.gz

 cdredis-3.2.11

 make

 

2.1.1.2 拷贝相关文件

 

mkdir /usr/local/redis

cp redis.conf  /usr/local/redis

cd src

cp redis-server  /usr/local/redis

cp redis-benchmark /usr/local/redis

cp redis-cli  /usr/local/redis

cd /usr/local/redis

mkdir conf

cp redis.conf conf/

cd conf

 

为各个节点都创建一个配置文件,以端口号为6380的节点为例:

cp redis.conf redis-6380.conf

修改redis-6380.conf

port 6380

pidfile /var/run/redis_6380.pid

cluster-enabled yes

cluster-node-timeout 15000

cluster-require-full-coverage no

cluster-config-file "nodes-6380.conf"

备注:第一次启动节点时,如果没有集群配置文件,它会自动创建一份,文件名由cluster-config-file参数控制,建议采用node-{port}.conf格式定义,防止同一机器下的多个节点彼此覆盖,导致集群信息异常。

Redis自动维护集群配置文件(如添加节点,节点下线,故障转移),不要手动修改。

2.1.1.3 配置PATH

vi /root/.bash_profile

在PATH=那行后面追加:/usr/local/redis

source /root/.bash_profile

 

2.1.1.4 启动节点

redis-server/usr/local/redis/conf/redis-6379.conf  &

redis-server /usr/local/redis/conf/redis-6380.conf &

redis-server /usr/local/redis/conf/redis-6381.conf &

redis-server /usr/local/redis/conf/redis-6382.conf &

redis-server /usr/local/redis/conf/redis-6383.conf &

redis-server /usr/local/redis/conf/redis-6384.conf &

 

#查看集群节点信息

[root@ocp conf]# redis-cli -p 6380

127.0.0.1:6380> cluster nodes

c8c3517afc1fe09f149c0dbf3e37d080532ea680:6380 myself,master - 0 0 0 connected

目前每个节点只能识别自己的节点信息。

2.1.2 节点握手

命令:cluster meet ip port

在集群内任意节点上执行cluster meet命令加入新节点,握手状态会通过信息在集群内传播,这样其他节点会自动发现新节点并发起握手流程。

127.0.0.1:6379> cluster meet 127.0.0.16380

127.0.0.1:6379> cluster meet 127.0.0.16381

127.0.0.1:6379> cluster meet 127.0.0.16382

127.0.0.1:6379> cluster meet 127.0.0.16383

127.0.0.1:6379> cluster meet 127.0.0.16384

 

127.0.0.1:6379> cluster nodes

c8c3517afc1fe09f149c0dbf3e37d080532ea680127.0.0.1:6380 master - 0 1510633772738 2 connected

ff996e111995fbcb7e23ab69a17bad830d9889f5127.0.0.1:6381 master - 0 1510633775415 0 connected

9b90366e39aeb0bb38b7fe0f506059294aff179e127.0.0.1:6382 master - 0 1510633776418 5 connected

31973463565c541e7bf3c564000d6a6e53bbd1af127.0.0.1:6383 master - 0 1510633773791 3 connected

8d6ef8962453b9bd58112893ef2a8f5fb148e2ce127.0.0.1:6379 myself,master - 0 0 1 connected

c40f88bd4236f06a1437730892f65d0c985a1fcc127.0.0.1:6384 master - 0 1510633777603 4 connected

 

这时集群处于下线状态,所有的数据读写都被禁止。

127.0.0.1:6379> 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:1

cluster_stats_messages_sent:634

cluster_stats_messages_received:634

此时cluster_slots_assigned值为0.只有当16384个槽全部分配给节点后,集群才进入在线状态。

 

2.1.3 分配槽

通过cluster addslots命令为三个主节点分配槽。

[root@ocp ~]# redis-cli -h 127.0.0.1 -p6379 cluster addslots {0..5461}

[root@ocp ~]# redis-cli -h 127.0.0.1 -p6380 cluster addslots {5462..10922}

[root@ocp ~]# redis-cli -h 127.0.0.1 -p6381 cluster addslots {10923..16383}

 

执行cluster info查看集群状态:

127.0.0.1:6379> 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:1

cluster_stats_messages_sent:139

cluster_stats_messages_received:139

 

执行cluster nodes可以看到节点和槽的对应关系:

127.0.0.1:6379> cluster nodes

c8c3517afc1fe09f149c0dbf3e37d080532ea680127.0.0.1:6380 master - 0 1510636810462 2 connected 5462-10922

8d6ef8962453b9bd58112893ef2a8f5fb148e2ce127.0.0.1:6379 myself,master - 0 0 1 connected 0-5461

31973463565c541e7bf3c564000d6a6e53bbd1af127.0.0.1:6383 master - 0 1510636809960 3 connected

ff996e111995fbcb7e23ab69a17bad830d9889f5127.0.0.1:6381 master - 0 1510636811965 0 connected 10923-16383

9b90366e39aeb0bb38b7fe0f506059294aff179e127.0.0.1:6382 master - 0 1510636808958 5 connected

c40f88bd4236f06a1437730892f65d0c985a1fcc127.0.0.1:6384 master - 0 1510636810963 4 connected

 

#查看槽信息

127.0.0.1:6379> cluster slots

1) 1) (integer) 5462

   2)(integer) 10922

   3)1) "127.0.0.1"

     2) (integer) 6380

     3) "c8c3517afc1fe09f149c0dbf3e37d080532ea680"

2) 1) (integer) 0

   2)(integer) 5461

   3)1) "127.0.0.1"

     2) (integer) 6379

     3) "8d6ef8962453b9bd58112893ef2a8f5fb148e2ce"

3) 1) (integer) 10923

   2)(integer) 16383

   3)1) "127.0.0.1"

     2) (integer) 6381

     3) "ff996e111995fbcb7e23ab69a17bad830d9889f5"

 

2.1.4 为主节点配置从节点

命令:cluster replicate nodeId

注意:必须在对应的从节点上执行,nodeId是其对应的主节点id.

127.0.0.1:6382> cluster replicate8d6ef8962453b9bd58112893ef2a8f5fb148e2ce

127.0.0.1:6383> cluster replicatec8c3517afc1fe09f149c0dbf3e37d080532ea680

127.0.0.1:6384> cluster replicateff996e111995fbcb7e23ab69a17bad830d9889f5

 

127.0.0.1:6384> cluster nodes

8d6ef8962453b9bd58112893ef2a8f5fb148e2ce127.0.0.1:6379 master - 0 1510637287240 1 connected 0-5461

c40f88bd4236f06a1437730892f65d0c985a1fcc127.0.0.1:6384 myself,slave ff996e111995fbcb7e23ab69a17bad830d9889f5 0 0 4connected

ff996e111995fbcb7e23ab69a17bad830d9889f5127.0.0.1:6381 master - 0 1510637288242 0 connected 10923-16383

31973463565c541e7bf3c564000d6a6e53bbd1af127.0.0.1:6383 slave c8c3517afc1fe09f149c0dbf3e37d080532ea680 0 1510637286239 3connected

c8c3517afc1fe09f149c0dbf3e37d080532ea680127.0.0.1:6380 master - 0 1510637284735 2 connected 5462-10922

9b90366e39aeb0bb38b7fe0f506059294aff179e127.0.0.1:6382 slave 8d6ef8962453b9bd58112893ef2a8f5fb148e2ce 0 1510637285236 5connected

可以看到从节点有slave标志,且包含其对应主节点的ID.

 

2.2 用redis-trib.rb搭建集群

2.2.1 Ruby环境准备

#安装ruby

wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz

tar xvf ruby-2.3.1.tar.gz

cd ruby-2.3.1

./configure -prefix=/usr/local/ruby

make

make install

cd /usr/local/ruby

cp bin/ruby /usr/local/bin

cp bin/gem /usr/local/bin

 

#安装rubygem redis依赖

wget http://rubygems.org/downloads/redis-3.3.0.gem

gem install -l redis-3.3.0.gem

 

#安装redis-trib.rb

cp redis-3.2.11/src/redis-trib.rb/usr/local/bin

 

安装完Ruby环境后,执行redis-trib.rb命令确认环境是否正确:

[root@ocp /]#  redis-trib.rb

[plain]  view plain  copy
  1. Usage: redis-trib <command><options> <arguments ...>  
  2.    
  3.  create          host1:port1 ...hostN:portN  
  4.                   --replicas <arg>  
  5.  check           host:port  
  6.  info            host:port  
  7.  fix             host:port  
  8.                   --timeout <arg>  
  9.  reshard         host:port  
  10.                   --from <arg>  
  11.                   --to <arg>  
  12.                   --slots <arg>  
  13.                   --yes  
  14.                   --timeout <arg>  
  15.                   --pipeline <arg>  
  16.  rebalance       host:port  
  17.                   --weight <arg>  
  18.                   --auto-weights  
  19.                   --use-empty-masters  
  20.                   --timeout <arg>  
  21.                   --simulate  
  22.                   --pipeline <arg>  
  23.                   --threshold <arg>  
  24.  add-node        new_host:new_portexisting_host:existing_port  
  25.                   --slave  
  26.                   --master-id <arg>  
  27.  del-node        host:port node_id  
  28.  set-timeout     host:portmilliseconds  
  29.  call            host:port commandarg arg .. arg  
  30.  import          host:port  
  31.                   --from <arg>  
  32.                   --copy  
  33.                   --replace  
  34.  help            (show this help)  
  35.    
  36. For check, fix, reshard, del-node,set-timeout you can specify the host and port of any working node in thecluster.  

 

2.2.2 准备节点

步骤同2.1.1。

2.2.3 创建集群

用redis-trib.rb create命令完成节点握手和槽分配过程。

redis-trib.rb create --replicas 1127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383127.0.0.1:6384

--replicas指定集群中每个主节点配置几个从节点,这里设置为1。

我们出于测试目的,使用本机IP地址127.0.0.1,如果部署节点使用不同的IP地址,redis-trib.rb会尽可能保证主从节点不分配在同一机器上,因此会重新排序节点列表顺序。

节点列表顺序用于确定主从角色,先主节点之后是从节点。

[plain]  view plain  copy
  1. >>> Creating cluster  
  2. >>> Performing hash slotsallocation on 6 nodes...  
  3. Using 3 masters:  
  4. 127.0.0.1:6379  
  5. 127.0.0.1:6380  
  6. 127.0.0.1:6381  
  7. Adding replica 127.0.0.1:6382 to127.0.0.1:6379  
  8. Adding replica 127.0.0.1:6383 to127.0.0.1:6380  
  9. Adding replica 127.0.0.1:6384 to127.0.0.1:6381  
  10. M: 8636e84389a6ce864c5e99afc08e61d5095fc4f4127.0.0.1:6379  
  11.   slots:0-5460 (5461 slots) master  
  12. M: c5424585ae85cfcc8074ee2017463a4de08de8ff127.0.0.1:6380  
  13.   slots:5461-10922 (5462 slots) master  
  14. M: fc47848325254ee3ea3253ca5947afc553212f54127.0.0.1:6381  
  15.   slots:10923-16383 (5461 slots) master  
  16. S: c7a0e63f207885ac2e7261de635bf53703f24f66127.0.0.1:6382  
  17.   replicates 8636e84389a6ce864c5e99afc08e61d5095fc4f4  
  18. S: f823b940266c33b6b9e11817887c17a45c6c9183127.0.0.1:6383  
  19.   replicates c5424585ae85cfcc8074ee2017463a4de08de8ff  
  20. S: 4ef4f547ae119bd7758670153e54417b45668591127.0.0.1:6384  
  21.   replicates fc47848325254ee3ea3253ca5947afc553212f54  
  22. Can I set the above configuration? (type'yes' to accept): yes  
  23. 这里需要手动输入‘yes’。  
  24. >>> Nodes configuration updated  
  25. >>> Assign a different configepoch to each node  
  26. 9100:M 15 Nov 13:11:16.663 # configEpochset to 1 via CLUSTER SET-CONFIG-EPOCH  
  27. 5540:M 15 Nov 13:11:16.664 # configEpochset to 2 via CLUSTER SET-CONFIG-EPOCH  
  28. 5541:M 15 Nov 13:11:16.664 # configEpochset to 3 via CLUSTER SET-CONFIG-EPOCH  
  29. 5542:M 15 Nov 13:11:16.665 # configEpochset to 4 via CLUSTER SET-CONFIG-EPOCH  
  30. 5543:M 15 Nov 13:11:16.665 # configEpochset to 5 via CLUSTER SET-CONFIG-EPOCH  
  31. 5544:M 15 Nov 13:11:16.665 # configEpochset to 6 via CLUSTER SET-CONFIG-EPOCH  
  32. >>> Sending CLUSTER MEET messagesto join the cluster  
  33. 9100:M 15 Nov 13:11:16.680 # IP address forthis node updated to 127.0.0.1  
  34. 5542:M 15 Nov 13:11:16.686 # IP address forthis node updated to 127.0.0.1  
  35. 5541:M 15 Nov 13:11:16.687 # IP address forthis node updated to 127.0.0.1  
  36. 5544:M 15 Nov 13:11:16.787 # IP address forthis node updated to 127.0.0.1  
  37. 5540:M 15 Nov 13:11:16.787 # IP address forthis node updated to 127.0.0.1  
  38. 5543:M 15 Nov 13:11:16.787 # IP address forthis node updated to 127.0.0.1  
  39. Waiting for the cluster to join...  
  40. 5542:S 15 Nov 13:11:20.685 # Cluster statechanged: ok  
  41. 5543:S 15 Nov 13:11:20.685 # Cluster statechanged: ok  
  42. 5544:S 15 Nov 13:11:20.686 # Cluster statechanged: ok  
  43. >>> Performing Cluster Check(using node 127.0.0.1:6379)  
  44. M: 8636e84389a6ce864c5e99afc08e61d5095fc4f4127.0.0.1:6379  
  45.   slots:0-5460 (5461 slots) master  
  46.    1additional replica(s)  
  47. S: 4ef4f547ae119bd7758670153e54417b45668591127.0.0.1:6384  
  48.   slots: (0 slots) slave  
  49.   replicates fc47848325254ee3ea3253ca5947afc553212f54  
  50. S: f823b940266c33b6b9e11817887c17a45c6c9183127.0.0.1:6383  
  51.   slots: (0 slots) slave  
  52.   replicates c5424585ae85cfcc8074ee2017463a4de08de8ff  
  53. M: fc47848325254ee3ea3253ca5947afc553212f54127.0.0.1:6381  
  54.    slots:10923-16383 (5461 slots) master  
  55.    1additional replica(s)  
  56. M: c5424585ae85cfcc8074ee2017463a4de08de8ff127.0.0.1:6380  
  57.   slots:5461-10922 (5462 slots) master  
  58.    1additional replica(s)  
  59. S: c7a0e63f207885ac2e7261de635bf53703f24f66127.0.0.1:6382  
  60.    slots:(0 slots) slave  
  61.   replicates 8636e84389a6ce864c5e99afc08e61d5095fc4f4  
  62. [OK] All nodes agree about slotsconfiguration.  
  63. >>> Check for open slots...  
  64. >>> Check slots coverage...  
  65. [OK] All 16384 slots covered.  
  66. ……  
  67. 5541:M 15 Nov 13:11:21.593 # Cluster statechanged: ok  
  68. 5540:M 15 Nov 13:11:21.622 # Cluster statechanged: ok  
  69. 9100:M 15 Nov 13:11:21.650 # Cluster statechanged: ok  

最后回车即可。

 

需要注意,redis-trib.rb的节点地址必须是不包含任何槽/数据的节点,否则会拒绝创建集群。

 

2.2.4 集群完整性检查

集群完整性指的是所有的槽都分配到存活的主节点上,只要16384个槽中有一个没有分配给节点,则表示集群不完整。

Check命令只需要给出集群中的任意一个节点地址就可以完成整个集群的检查工作。

命令如下:

[root@ocp /]# redis-trib.rb check127.0.0.1:6379

[plain]  view plain  copy
  1. >>> Performing Cluster Check(using node 127.0.0.1:6379)  
  2. M: 8636e84389a6ce864c5e99afc08e61d5095fc4f4127.0.0.1:6379  
  3.   slots:0-5460 (5461 slots) master  
  4.    1additional replica(s)  
  5. S: 4ef4f547ae119bd7758670153e54417b45668591127.0.0.1:6384  
  6.   slots: (0 slots) slave  
  7.   replicates fc47848325254ee3ea3253ca5947afc553212f54  
  8. S: f823b940266c33b6b9e11817887c17a45c6c9183127.0.0.1:6383  
  9.   slots: (0 slots) slave  
  10.   replicates c5424585ae85cfcc8074ee2017463a4de08de8ff  
  11. M: fc47848325254ee3ea3253ca5947afc553212f54127.0.0.1:6381  
  12.   slots:10923-16383 (5461 slots) master  
  13.    1additional replica(s)  
  14. M: c5424585ae85cfcc8074ee2017463a4de08de8ff127.0.0.1:6380  
  15.   slots:5461-10922 (5462 slots) master  
  16.    1additional replica(s)  
  17. S: c7a0e63f207885ac2e7261de635bf53703f24f66127.0.0.1:6382  
  18.   slots: (0 slots) slave  
  19.   replicates 8636e84389a6ce864c5e99afc08e61d5095fc4f4  
  20. [OK] All nodes agree about slotsconfiguration.  
  21. >>> Check for open slots...  
  22. >>> Check slots coverage...  
  23. [OK] All 16384 slots covered.  

原文来自:http://blog.csdn.net/yabingshi_tech/article/details/78539871

                http://blog.csdn.net/u010570551/article/details/70477952

注:此文章有修改之处且用于分享,无任何商业用途,如有异议请及时与博主取得联系!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值