Redis02-Redis集群

1.1.什么是Redis集群?

  所谓的集群,就是通过添加服务器的数量,提供相同的服务,从而让服务器达到一个稳定,高效的状态。

1.2.使用redis集群的必要性

  对于一个已经部署好了并且能启动的redis,可以实现数据的读写,为什么还要使用redis集群?原因如下:

  • 单个redis存在不稳定性,当redis服务宕机了,此时就没有了可用的服务了
  • 单个redis的读写能力是有限的

  总结:redis集群是为了强化redis的读写能力。

1.3.如何学习redis集群

  • redis集群中,每一个redis称为一个节点
  • redis集群中,有两种类型的节点,分别为:主节点(master),从节点(slave)
  • redis集群,是基于redis主从复制实现

  所有,学习redis集群,就是从学习redis主从复制模型开始

2.1.redis主从复制

  主从复制模型中,有多个redis节点,其中,有且仅有一个为主节点Master,从节点Slave可以有多个,只要网络连接正常,Master会一直将自己的数据更新同步给Slaves,保持主从同步。

2.2.特点

  • 主节点(Master)可读,可写
  • 从节点(Slave)只读(read-only)

  因此,主从模型可以提高读的能力,在一定程度上缓解了写的能力,因为写仍然只有Master节点一个,可以讲读的操作全部移交到从节点上,变相提高了写能力。

2.3.基于配置实现

2.3.1.需求

  • 一个主节点,端口为6380
  • 两个从节点,端口分别为6381,6382

2.3.2.步骤

  1.在/usr/local 目录下,创建一个/redis/master-slave 目录

    [root@node0719 local]# mkdir  -p  redis/master-slave

 

  2.在master-slave目录下,创建三个子目录6380、6381、6382

    [root@node0719 master-slave]# mkdir 6380 6381 6382

 

  3.依次拷贝redis解压目录下的redis.conf配置文件,到这三个子目录中

    [root@node0719 master-slave]# cp /root/redis-3.2.9/redis.conf ./6380/

    [root@node0719 master-slave]# cp /root/redis-3.2.9/redis.conf ./6381/

    [root@node0719 master-slave]# cp /root/redis-3.2.9/redis.conf ./6382/

 

   4.进入6380目录,修改redis.conf,将port端口修改成6380即可

    [root@node0719 master-slave]# cd ./6380

    [root@node0719 6380]# vim redis.conf

    

  

  5.进入6381目录,修改redis.conf,将port端口改成6381,同时指定开启主从复制。

    [root@node0719 6380]# cd ../6381

    [root@node0719 6381]# vim redis.conf

    

    

 

   6.进入6382目录,修改redis.conf,将port端口改成6382,同时指定开启主从复制。

    [root@node0719 6380]# cd ../6382

    [root@node0719 6381]# vim redis.conf

     

    

2.3.3.测试

  1.打开三个xshell窗口,在每一个窗口中,启动一个redis节点。查看日志输出。(不要改成后台模式启动,看不到日志,不直观)

    [root@node0719 master-slave]# cd 6380 && redis-server ./redis.conf

    [root@node0719 master-slave]# cd 6381 && redis-server ./redis.conf

    root@node0719 master-slave]# cd 6382 && redis-server ./redis.conf

   2.另外再打开三个xshell窗口,在每一个窗口中,登陆一个redis节点

    [root@node0719 ~]# redis-cli -p 6380

    [root@node0719 ~]# redis-cli -p 6381

    [root@node0719 ~]# redis-cli -p 6382

  3.在主节点6380上,进行读写操作,操作成功

[root@node0719 ~]# redis-cli -p 6380

127.0.0.1:6380> set user:name zs

OK

127.0.0.1:6380> get user:name

"zs"

127.0.0.1:6380>

 

4.在从节点6381上读操作执行成功,并且成功从6380上同步了数据

[root@node0719 ~]# redis-cli -p 6381

127.0.0.1:6381> get user:name

"zs"

  写操作执行失败。(从节点,只能读,不能写)

    127.0.0.1:6381> set user:age 18

    (error) READONLY You can't write against a read only slave.

猜你喜欢

转载自www.cnblogs.com/wtx023/p/10746890.html