数据库(4)

本文介绍了MySQL的主从复制原理,半同步与全同步复制的区别,以及如何解决延迟问题。同时详细讲解了Redis的特性,包括其作为单线程存储系统为何能提供高性能,以及在缓存、事件处理等场景中的应用。
摘要由CSDN通过智能技术生成

目录

16.MySQL主从复制?

17.MySQL主从的延迟是怎么解决的呢?

18.MySQL读写分离方案?

19.什么是Redis,为什么用Redis?

20.为什么Redis是单线程的以及为什么这么快?


16.MySQL主从复制?

主要涉及三个线程:binlog线程、I/O线程和SQL线程。

binlog线程:负责将主服务器上的数据更改写入二进制日志中。

I/O线程:负责从主服务器上读取二进制日志,并写入从服务器的中继日志中。

SQL线程:负责读取中继日志并重新其中的SQL语句。

全同步复制

主库写入binlog后强制同步日志到从库,所有的从库都执行完成后才返回给客户端,但是很显然这个方式的话性能会受到严重影响。

半同步复制

和全同步不同的是,半同步复制的逻辑是这样,从库写入日志成功后返回ACK确认给主库,主库受到至少一个从库的确认就认为写操作完成。

17.MySQL主从的延迟是怎么解决的呢?
18.MySQL读写分离方案?

主服务器处理写操作以及实时性要求比较高的读操作,而从服务器处理读操作。

读写分离能提高性能的原因在于:

主从服务器负责各自的读和写,极大程度环节了锁的争用。

从服务器可以使用MyIISAM,提升查询性能以及节约系统开销;

增加冗余,提高可用性。

读写分离常用代理方式来实现,代理服务器接收应用层传来的读写请求,然后决定转发到哪个服务器。

19.什么是Redis,为什么用Redis?

Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或者订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存,可持久化。

读写性能优异

Redis能读的速度是110000次/s,写的速度是81000次/s

数据类型丰富

Redis支持二进制案例的String,Lists,Hashes,Sets以及Ordered Sets数据类型操作。

原子性

Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

丰富的特性

Redis支持public/subscribe,通知,key过期等特性。

持久化

Redis支持RDB,AOF等持久化方式

发布订阅

Redis支持发布/订阅模式

分布式

Redis Cluster

20.为什么Redis是单线程的以及为什么这么快?

Redis完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。

数据结构简单,对数据操作也简单,Redis中的数据结构是专门设计的。

采用单线程模型,避免了必要的额上下文切换和竞争条件,也不存在多线程或者多线程切换而消耗CPU,不用考虑各种锁的问题,不存在加锁,释放锁的操作,没有因为可能出现死锁而导致性能消耗。

使用了多路IO复用模型,非阻塞IO。

使用底层模型不同,它们之间底层实现方式以及客户端之间的通信的应用协议不一样,Redis直接构建了自己的JVM机制,因为一般的系统调用函数的话,会浪费一定的时间去移动和请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值