MySQL第四次作业

1-什么是CAP?

C=====> Consistency (一致性)

A=====> Availcbility (可用性)

P=====> Partition tolerance (分区容错性)

          CAP 定理指出,一个分布式系统不可能同时满足一致性、可用性和分区容错性这三点,最多只能同时满足其中两个。根据 CAP 定理,主要有两类系统:CA 系统:满足一致性和可用性。例如单机数据库。CP 系统:满足一致性和分区容错性。例如大多数常见的分布式数据库。AP 系统:满足可用性和分区容错性。例如 NoSQL 数据库。所以设计分布式系统时需要根据业务需求进行权衡。

2-Redis 配置文件中有哪些核心的配置信息?作用分别是什么?

- port:指定 Redis 服务端口,默认是 6379。

- bind:指定 Redis 绑定的 IP,默认情况下只接受本机的访问请求。

- daemonize:是否以守护进程方式运行,默认是 no,以交互式方式运行。

- pidfile: 指定 pid 文件位置。

- timeout:客户端维持多少秒会关闭,单位秒,0表示关闭该功能,即永不关闭。

-tcp-backlog:设置 tcp 的 backlog,backlog队列总和 = 未完成三次握手队列 + 已经完成三次握手队列。在高并发环境下需要一个高 backlog 值来避免慢客户端连接问题。

- tcp-keepalive:TCP 连接的keepalive探测包发送频率。

- loglevel:日志级别,分为 debug、verbose、notice、warning、error 等。

- logfile:日志文件位置。- databases:设置数据库的数量,默认是 16 个。

- maxmemory:最大内存限制,可用值如 10M。当内存使用超过限制时,Redis 会根据策略移除数据。

- maxmemory-policy:超过内存限制时的数据淘汰策略。

-maxmemory-samples:用于设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,一般设置3到7的数字,数值越小样本越不准确,但性能消耗越小。

3-乐观悲观锁的区别?

3.1 悲观锁

       悲观锁(Pessimistic Lock)顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库就用到了很多这种锁机制,比如行锁,表锁,读锁,写锁等,都是在做操作之前先上锁。

       传统关系型数据库就是用的悲观锁。

image-20220719121359881

3.2 乐观锁

       乐观锁(Optimistic Lock)顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量。Redis就是利用这种check-and-set机制实现事务的。

       redis使用的是乐观锁。

image-20220719121620157

4-Redis 主从复制原理?

Redis 一般是使用一个 Master 节点来进行操作,而若干个 Slave 节点进行操作,Master 和 Slave 分别代表了一个个不同的 Redis Server 实例。

另外定期的数据备份操作也是单独选择一个 Slave 去完成,这样可以最大程度发挥 Redis 的性能,为的是保证数据的弱一致性和最终一致性。

另外,Master 和 Slave 的数据不是一定要即时同步的,但是在一段时间后 Master 和 Slave 的数据是趋于同步的,这就是最终一致性。

image-20200709170335870

全同步过程如下:

  • Slave 发送 Sync 命令到 Master。

  • Master 启动一个后台进程,将 Redis 中的数据快照保存到文件中。

  • Master 将保存数据快照期间接收到的写命令缓存起来。

  • Master 完成写文件操作后,将该文件发送给 Slave。

  • 使用新的 RDB 或 AOF 文件替换掉旧的 RDB 或 AOF 文件。

  • Master 将这期间收集的增量写命令发送给 Slave 端。

增量同步过程如下:

  • Master 接收到用户的操作指令,判断是否需要传播到 Slave。

  • 将操作记录追加到 AOF 文件。

  • 将操作传播到其他 Slave:对齐主从库;往响应缓存写入指令。

  • 将缓存中的数据发送给 Slave。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值