1.redis是什么h2>
基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis是一个key-value存储系统。
它支持存储的value类型:string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的,
与memcached一样,数据都是缓存在内存中。。
redis会周期性的把更新的数据写入磁盘(rdb)或者把修改操作写入追加的记录文件(aof),
并且在此基础上实现了master-slave(主从)同步。
2.主从复制概念
主从复制模型中,有多个redis节点。
其中,有且仅有一个为主节点Master。从节点Slave可以有多个。
只要 络连接正常,Master会一直将自己的数据更新同步给Slaves,保持主从同步。
特点
(1)主节点Master可读、可写.
(2)从节点Slave只读。(read-only)
因此,主从模型可以提高读的能力,在一定程度上缓解了写的能力。因为能写仍然只有Master节点一个,可以将读的操作全部移交到从节点上,变相提高了写能力。
3.实验环境
本实验搭建主从同步,一主两备
主机信息 | 主机功能 |
---|---|
server1(172.25.1.1) | redis主服务器 |
server2(172.25.1.2) | redis从服务器1 |
4.实验步骤
主Redis(server1)上:
安装redis
(1)下载安装包:redis-5.0.3.tar.gz,并解压
(2)下载编译依赖的软件gcc
(3)cd redis-5.0.3进行编译
(4)cd utils执行./install_server.sh,一路敲回车。会生成配置文件,端口信息等。
至此redis的安装,也就完成了。当redis安装完成之后,redis服务就已经开启。可以来用查看端口的方法(redis服务的端口是6379),来查看redis服务是否开启。
配置redis
(1)修改配置文件
(2)修改完配置文件后,重启redis服务(因为执行完./install_server.sh脚本之后,redis服务已经开启,所以这里是重启redis服务,而不是开启redis服务)
至此redis的配置也就完成了。此时再次查看redis的端口信息,可以看到,redis监控的端口信息是0.0.0.0:6379和127.0.0.1:6379,而并不再只是127.0.0.1:6379。
配置server2(从机):
安装redis,安装过程同server1
或者直接将server1上安装好的目录发送给server2,然后再在server2上执行剩下的操作,过程如下:
(1)将server1上安装好的目录发送给server2:
(2)在server2上执行剩下的操作:
配置redis
(1)修改配置文件
重启redis服务
修改完配置文件后,重启redis服务(因为执行完./install_server.sh脚本之后,redis服务已经开启,所以这里是重启redis服务,而不是开启redis服务)
配置server3(从机):
server2与server3操作完全相同
3.测试:
主机设定key-value
在server1:
可以设定键和value,那么当然也可以删除键及其对应的value。对应的命令就是”del name”
查看从机能否获取到value值
结论:
在主机设定的key-value,在从机可以看到,表示redis的主从配置成功。
值的注意的是:从库默认是只读的,是不可以写的。
但是从机并不能写入:
5.搭建哨兵模式
此实验在上一个实验基础上进行。
(1)哨兵模式解决的问题
主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。
(2)哨兵模式概述
Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。

此时说明redis哨兵机制已经成功实现
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!