缓存中间件
同为缓存中间件,Memcache和Redis的区别:
Memcache:代码层次类似Hash
支持简单数据类型、不支持数据持久化存储、不支持主从、不支持分片
Redis:数据类型丰富、支持数据磁盘持久化存储、支持主从、支持分片
多路I/O复用模型及Redis常见问题
Redis采用的I/O多路复用函数:epoll/kqueue/evport/select的其中一种。
下图为select系统调用,作用是监控多个文件的可读可写情况:
Redis选择多路复用函数的条件:
- 具体情况具体分析;
- 优先选择时间复杂度为O(1)的多路复用函数作为底层实现;
- 采用时间复杂度为O(n)的select作为保底;
- 基于react设计模式监听I/O事件。
Redis的基本数据类型:string、hash、list、set、sorted set、hyperloglog(计数)、geo
(存储地理位置信息)