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是单线程,所以redisreduction成功后不会减少库存,后续请求被拒绝,然后在数据库中减少库存,这样就不会出现负库存的问题。这是基本的工作原理
原文标题:为什么说redis不是单线程 redis为什么是单线程?,如若转载,请注明出处:https://www.saibowen.com/tougao/20833.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。