Redis 6.0新Feature实现原理——Threaded I/O

2020-09-20

Redis可以轻松支撑100k+ QPS,离不开基于Reactor模型的I/O Multiplexing,In-memory操作,以及单线程执行命令避免竞态消耗。尽管性能已经能满足大多数应用场景,但是如何继续在迭代中继续优化,以及在多核时代利用上多线程的优势,也是大家关注的重点。我们知道性能优化在系统资源层面可以从I/O以及CPU上入手,对于Redis而言,其功能不过度依赖CPU计算能力,即不是CPU密集型的应用,而In-memory的操作也绕开了通常会拖慢性能的磁盘I/O,所以在Redis 6.0版本中,作者Antirez从网络I/O入手,引入Threaded I/O辅助读写,在一些场景下实现了大幅度的性能提升。本文将介绍Redis的事件模型,分析Threaded I/O是如何帮助提升性能,以及其实现的原理。

Redis 6.0 ACL基于Bitmap实现

2020-03-14

Redis 6.0中使用Bitmap存储命令权限,List存储键匹配Pattern来实现ACL功能,并在执行命令、事务和Lua过程中判断权限。

Elasticsearch节点选举、分片及Recovery

2020-03-14

Elasticsearch通过Bully算法选举临时Master、正式Master;Allocation模块负责分片选举,Master分发Primary Terms和维护in-sync列表;副分片的两阶段Recovery流程,通过_version保证恢复过程中的数据一致性