Redis单线程模型和IO多路复用

Redis单线程模型和IO多路复用
Redis使用单线程,可以避免上下文切换,效率最高。避免了线程切换、加锁等资源消耗

单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。

IO多路复用指多个channel或者网络IO,共用一个或者少量线程来处理。

为什么使用多路复用,是因为与用户网络传输是需要等待的,IO操作不能直接返回。所以使用IO多路复用来解决这个问题,防止一个IO阻塞影响其他IO的读取。

文件事件处理器使用IO多路复用模块同时监听多个FD(文件描述符),有读写accept和close事件时,回调绑定的事件处理器。
使用epoll策略,实现哪些socket有通讯,处理那些socket、 高效

使用redis的好处:

速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
支持丰富数据类型,支持string,list,set,sorted set,hash
支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
redis的value最大可以达到1GB,key最大是512M

Redis常见性能问题和解决方案:
1、一般不在master上做持久化工作,因为写内存快照时,会阻塞主线程工作,可能导致间歇性暂停服务。
2、主从复制使用单向链表结构,更稳定。
————————————————
版权声明:本文为CSDN博主「ljz2016」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ljz2016/article/details/107228127

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值