2016 - 2024

感恩一路有你

nginx负载均衡策略 redis高可用实现原理?

浏览量:1950 时间:2021-03-10 20:12:42 作者:admin

redis高可用实现原理?

redis的高可用性主要有主从模式、哨兵模式和集群模式。这些模式的具体实现原则和演进思路可以参考:【redis高可用架构演进——今日头条】https://m.toutiao.com/is/eejkhKG/

redis单线程为什么比多线程快?

一般来说,单线程的处理能力比多线程差,但是redis之所以更快,主要是因为以下原因:

1。纯内存访问,ReDIS将所有数据存储在内存中,内存的响应时间约为100纳秒,这是ReDIS实现每秒10000级访问的重要基础。

2. 非阻塞io。Redis使用epoll作为I/O复用技术的实现。此外,redis自己的事件处理模型将epoll中的连接、读写和关闭转换为事件,不会在网络I/O上浪费太多时间。单线程避免了线程切换和争用的消耗。

单线程的优点:1。简化了数据结构和算法的实现。

2. 避免线程切换和争用的消耗。对于服务器,锁和线程切换通常是性能杀手。

单线程问题:每个命令的执行时间都有要求。如果执行一个命令,它将阻止其他命令,这对高性能服务redis是致命的。因此,redis是一个用于快速执行场景的数据库。

有些“上古”程序员一直坚持反对使用redis怎么办?

分享大人物的答案似乎合情合理。

不要告诉我们是否使用redis。你必须告诉我们你为什么要使用redis。没有redis的业务怎么了?世界上没有免费的午餐。如果不直接使用头部缓存/NoSQL,可能会带来越来越严重的问题。

单个数据库的最大优点是易于实现事务,并由数据库本身保证。举个简单的例子,要下订单,需要扣除库存并插入订单条目。如果inventory和order都是数据库表条目,那么这个事务是无可挑剔的。如果库存在redis中,订单条目是mysql,通常需要先写redis,成功后再写数据库。如果您写数据库失败,需要回滚redis,如果由于网络或其他原因回滚失败,将再扣减一个存货。不要认为这些事情很容易解决。事务处理的复杂性远远超出您的想象。例如,当您编写mysql时,您在提交时就失去了连接。你无法判断提交是成功还是失败。你的redis是不是在倒退?

因此,当您引入一个新层时,您必须弄清楚您必须使用cache/NoSQL的目的以及您可以接受的一致性模型。否则,你就要出丑了。

nginx负载均衡策略 nginx五大模块 负载均衡的几种方式

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。