redis的主从模式


(1)介绍


redis存储数据是在内存中运行的,运行速度比关系型数据库要快一些。而且它具有SortSet/Hash


等具有特色的数据类型,这是其它数据库无法比拟的。



redis有增删改查四种操作,和一般的数据库差不多。


什么操作最耗费数据库资源?是查询。查询中的子查询、多表查询,条件中的Group by、order by,


以及limit等操作都会消耗不少的数据库资源。



提升数据库效率,在资金充足的情况下,我们可以通过提升硬件设施来完成:


购置多个服务器,每个服务器执行不同的数据操作,查询类操作消耗资源,可以分给好多个数据库来操作,叫做“读写分离技术”。



添加、修改、删除都叫“数据写入”,主服务器可以作为“写入”服务器,而从服务器可以作为


“读取”服务器。主服务器和从服务器要通过一些技术自动来同步。这叫“主从模式”。



(2)创建基于redis的主从模式


我们也可以给reids构建一个“主从模式”。在多台服务器上安装Redis,然后主服务器负责写入


操作,从服务器进行读取操作。主从服务器是可以自动备份的:


【Redis缓存机制】10.主从模式_slave-read-only


(主服务器是master,从服务器是slave)



我们打开redis.conf,在下面可以设置此redis所在的服务器是哪一台主服务器的从服务器:


【Redis缓存机制】10.主从模式_slave-read-only_02



或者是成为哪些redis服务器的主服务器:


【Redis缓存机制】10.主从模式_slave-read-only_03



设置样例:


设置本机为在ip为192.168.39.159下的某台redis主服务器的从服务器


【Redis缓存机制】10.主从模式_主从模式_04



其实从服务器的读写权限是可以配置的,配置位置如下:


【Redis缓存机制】10.主从模式_redis_05



注意,修改完redis配置文件之后,要杀死现有的redis进程,重启redis服务,就可以看到

其它服务器的数据。


(3)动手实践

我们使用redis来实现主从模式。


首先在VMware虚拟机中的Linux中打开两个终端,一个是用户jack,一个是newuser:

【Redis缓存机制】10.主从模式_主从模式_06



然后我们jack作为主机,redis服务运行在6379端口,我们设置newuser为从机,设置其redis

运行在6380端口,然后让其使用slaveof命令从属于jack的主机:

【Redis缓存机制】10.主从模式_slaveof_07


注意:我们客户端登录的时候,使用的配置文件分别是redis.conf和redis6380.conf。

其中redis6380.conf的内容和redis.conf一样,只有port端口号的设置不同:

【Redis缓存机制】10.主从模式_masterauth_08



可以看一下两个终端的信息,发现他们都是互相独立的,不是任何一个的从机(即两个都是独立的主机):

【Redis缓存机制】10.主从模式_slaveof_09



用指令实现主从模式的方法:

【Redis缓存机制】10.主从模式_slave-read-only_10