更新时间:2022-02-15 09:44:15 来源:极悦 浏览2026次
Redis主从复制也应该是相同原理在其他数据库中的应用,也可以称为读写分离;还有一个主数据库和从数据库。
写数据库一般是主数据库,而读数据库则是从数据库。
缺点:由于写数据库的写操作和分布,存在主从数据与写数据库的同步操作不一致的可能。
* 如果只有一个主库,多组从库,不能保证高可用(需要手动维护,切换主库)
一般原则:
(1)主库(写)正常配置
(2)数据库中配置的主数据库
(3)接收到SYNC指令后,通过RDB快照接收当前数据库,然后发送队列保存快照创建周期和操作。
(4)从数据库接收到快照后,执行本地;并接收主库队列的增量同步数据
(5)所有写入操作都通过主库,而主库是从服务器同步到从服务器推送增量数据异步执行的。
(6)大部分的读操作都是从数据库进行的
(7)Redis虽然是单线程,但不代表所有操作都是单线程,只是主线程是单线程模式。为了保持 REDIS 的高性能读写,主数据的写操作和从数据库同步的数据是异步的。
如何配置:
在配置文件中添加(仅来自数据库):
5.0 紧随其后:
REPLICAOF 本地主机6379
前
奴隶本地主机6379
如果主库挂了,只能手动切换,从服务中取消命令
REPLICAOF没有人
顾名思义,哨兵就是站岗——监控。那么什么是监控呢?这是即将来自一个主机,一个master数据库如果崩溃了,那么服务就中断了,那么sentinel就对应了这个问题。
当主库挂起时,可以使用哨兵监控(也可以使用Guard Wiring帮助理解),将从服务器转换为主服务器。哨兵也可以相互监控。
配置:
(1)我使用的是源码提供的util目录下的ITILL脚本,安装3个端口的Redis-Server服务
(2)在/etc/redis/对应配置文件中添加递增
哨兵监控大师127.0。0.1 6379 2
最后一个数字表示投票选举新主节点的票数
(3)然后在/etc/init.d/的对应配置中,添加--sentinelstarts
(4)重启服务:服务redis_6xxx重启
PS:哨兵模式,会自动修改配置文件,默认应该是轮询模式,看日志,服务挂掉后不要非常实时切换主节点。
集群模式可以作为滑块模式使用,可以增加横向扩展和切片的功能。
即使使用哨兵模式,系统可能仍有数据量增加,这种情况下可能需要数据执行服务器部分(客户端切片,不同客户端可以根据需要连接不同的REDIS数据库)
集群模式实现了服务器的分区功能。
客户端分区是客户端决定了数据将存储在哪个REDIS节点或读取哪个Redis节点。大多数客户端都实现了客户端分区。
代理分区是指客户端将请求发送给代理,然后代理决定哪个节点写入数据或读取数据。代理根据分区规则确定哪些REDIS实例,然后根据Redis的响应结果返回给客户端。Redis 和 memcached Twemproxy的代理实现
Query Routing是指客户端随机请求任意一个 REDIS 实例,然后将请求转发到正确的 REDIS 节点。Redis Cluster 实现了混合形式的查询路由,但并不直接将请求从一个 Redis 节点转发到另一个节点,而是直接在客户端的帮助下进行。重定向到正确的 REDIS 节点。如果大家想了解更多相关知识,可以关注一下极悦的Redis教程,里面的课程更加细致全面,通俗易懂,即使没有基础也能听懂,希望对大家的学习能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习