【发布时间】:2017-02-24 07:32:40
【问题描述】:
我对redis有些困惑。我是自学redis。
我已经知道redis是单线程的,它适用于事件循环的概念。所以读/写操作在redis中是序列化的,没有竞态条件。
我的困惑是——当我天真地考虑单线程架构时,我可以想象有一个缓冲区,所有读/写请求都聚集在这里,线程一一调度它们。但是在一个需要处理数千或数百万个请求的现实互联网应用程序中,redis 如何在没有明显延迟的情况下处理这些请求?如果某个写操作需要几毫秒的时间,它会在这段时间内阻止其他读写操作吗?
redis 是否实现了任何锁定概念,例如关系数据库?如果不是,那么 redis 如何在没有明显延迟的情况下处理数千次读/写?
任何内部结构/示例都对我的进一步研究很有帮助。
【问题讨论】:
标签: python redis node-redis nosql