2016 - 2024

感恩一路有你

为什么说redis不是单线程 redis为什么是单线程?

浏览量:2168 时间:2021-03-13 10:45:07 作者:admin

redis为什么是单线程?

1。

redis基于内存,内存的读写速度非常快

2。

redis是单线程的,这为上下文切换线程节省了大量时间

3。

redis使用多路复用技术处理并发连接。Epoll用于我们自己实现的简单事件框架中的非阻塞io的内部实现

一般来说,单线程的处理能力比多线程的差,但是redis速度快的原因主要有以下几个方面:

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

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

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

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

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

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

Redis以单进程的形式运行,命令一个接一个的执行,解决了程序的并发问题。所以当数据涉及到并发问题时,比如秒杀,我们将数据行存储在redis中,然后用户请求减少redis中的库存。Redis是单线程,所以Redis reduction成功后不会减少库存,后续请求被拒绝,然后在数据库中减少库存,这样就不会出现负库存的问题。这是基本的工作原理

为什么说redis不是单线程 redis单线程为什么能支持并发 redis单线程还是多线程

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