1. 应用场景

1.1 配合关系型数据库做高速缓存

  • 高频次,热门访问的数据,降低数据库 IO
  • 分布式架构,做 session 共享

1.2 多样的数据结构存储持久化数据

2. Redis 介绍相关知识

多路复用指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用 select 和 poll 函数,传入多个文件描述符,如果有一个文件描述符就位,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启用线程执行(比如使用线程池)、

就是说多路 IO 复用起到一个监视的效果,就绪后,Redis 直接执行,不需要等待

串行与采用多线程+锁(Memcached)与单线程+多路 IO 复用的比较

  • 串行:阻塞 IO,一件事一件事的做,在做当前事时,不能做其他事,有等待

  • 采用多线程+锁:非阻塞 IO,一直重复做当前的事,没有等待

  • 单线程+多路 IO 复用:做某件事情需要一定的时间,可以监视这件事,我们可以做其他的事。多路 IO 复用有 select,poll,epoll 这些模式。select 监测数量能力有限。poll 监测数量没有限制,但是需要一个一个核查。配 epoll 监测数量没有限制,也不需要一个一个核查,直接看是否有一个正确的标识。