
@[TOC]
一. Redis 搭建主从复用-读写分离
**Redis 支持主从复用。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。 Mater Slave 的模式,从 Slave 向 Master 发起 SYNC 命令。
可以是 1 Master 多 Slave,可以分层, Slave 下可以再接 Slave,可扩展成树状结构。**
Redis的架构模式:
1.单机版
优点:
搭建和使用简单
缺点:
查询和写入都是一台服务器来工作
无法满足高可用
2.主从复用环境-读写分离
优点:
将读写进行分离,提高查询速度
缺点:
写数据的压力没有得到缓解
无法满足高可用
3.主从复用环境-主备切换-哨兵
优点:
实现了高可用
缺点:
写数据的压力没有得到缓解
4.集群
缺点:
搭建环境复杂学习难度增大
保证集群环境的可用
优点:
读写的压力都得到了缓解
分片处理solt槽
============================================================================================
注意:redis不是实时存储的, 根据除法 save 60 10000 / save 300 10 / save 900 1
eg:60秒内执行10000次才进行存储....
redis将数据库快照保存在dub.rdb的二进制文件中 -> 也就是刚开始执行数据保存在快照中,当触发条件则持久化保存在二进制文件中
===========================================================================================
面试: redis的存储方式解释下:
可以回答:dum.rdb的存储机制 + appnedonly file的AOP机制
===========================================================================================
redis搭建主从服用 - 读写分离
创建公共配置文件:redis-common.conf:
(1) protected-mode no ->保护模式
(2) port 6379 ->公共配置端口
(3) bind 127.0.0.1 ->绑定本机ip
(4) daemonize yes ->设置是否为后台启动
(5) pidfile /var/run/redis_6379.pid ->进程编号记录文件
(6) logfile "" ->公共配置日志文件
(7) dbfilename dump.rdb ->公共配置数据文件
(8) dir /opt/redis/data ->数据文件路径
(9) masterauth root ->从服务器访问主服务器认证
(10) requirepass root ->访问认证
(11)dependonly no 公共配置追加文件 ->打开区别: 数据不会先存储在快照中,而是通过appendonlyfile的文件
把所有插入数据/指令添加到那个文件中,然后按照默认自动保存方式,定期的把这里面的输入保存到dump.rdb文件中
使用好处: 就算服务器断了/down了, appendonly.aof文件中也会有数据,直接重新继续执行导入就行
(12) replace-read-only yes ->从服务器默认是只读不允许写操作(不用修改) 自动提高查询效率,写的操作自动到主服务器去控制,从服务器值查询即可
============================================================================================
redis搭建主从服用 - 主备切换-哨兵
修改 sentinel-common.conf 哨兵公共配置文件:
(1) #port 26379 ->注释哨兵监听进程端口号
(2) protected-mode no ->关闭保护模式
(3) daemonize yes ->修改为后台启动
(4) sentinel monitor mymaster 192.168.159.128 6379 2 ->指示 Sentinel 去监视一个名为 master 的主服务器,这个主服务器的 IP 地址为127.0.0.1,
端口号为 6379,而将这个主服务器判断为失效至少需要 1 个(一般设置为 2个)。 Sentinel 同意
(5) sentinel auth-pass mymaster root ->设置 master 和 slaves 的密码
(6) sentinel down-after-milliseconds mymaster 10000 Sentinel 认为服务器已经断线所需的毫秒数 eg:执行ping,返回pang ,超过10000就代表时效
(7) sentinel failover-timeout mymaster 180000 ->若 sentinel 在该配置值内未能完成 failover 操作(即故障时 master/slave 自动切换)
,则认为本次 failover 失败。
使用步骤:
创建三个目录(数据文件、日志文件、配置文件)

复制 redis.conf 至/opt/redis/conf 目录下

修改 redis-common.conf 公共配置文件
3.1注释掉 bind 127.0.0.1

3.2关闭保护模式,修改为 no

3.3注释公共配置端口

3.4修改为后台启动

3.5注释进程编号记录文件

3.6注释公共配置日志文件

3.7注释公共配置数据文件、修改数据文件路径
==在默认情况下, Redis 将数据库快照保存在名字为 dump.rdb 的二进制文件中。当然,==
==这里可以通过修改 redis.conf 配置文件来对数据存储条件进行定义,规定在“ N 秒内数==
==据集至少有 M 个改动”这一条件被满足时,自动保存一次数据集。也可以通过调用 save 或==
==bgsave ,手动让 Redis 进行数据集保存操作==
==dbfilename 和 dir 组合使用, dbfilename 找 dir 路径生成数据文件==

3.8添加从服务器访问主服务器认证


重要信息



