Redis有以下通用的限制和缺点:
- 数据大小限制在内存中
Redis的数据完全存储在内存中,限制了单个Record和Database的大小。 - 内存溢出丢失数据
一旦内存溢出,Redis将无法存储任何新的数据,且现有数据可能丢失。 - 不能ACID原子事务
Redis只保证每个指令的原子性,但事务只是多条指令的批处理。 - 数据集合有限
Redis支持的有限数据集合无法替代关系数据库。 - 只支持键值对数据格式
Redis只支持键值对,没有SQL丰富的查询语句。 - 缺乏安全特性
Redis默认没有设置密码认证,需要进行定制来增强安全性。 - 缺乏监控统计
Redis内置的监控统计比较有限,需要定制或集成其他监控系统。 - 数据一致性依赖内存
Redis依赖内存来保障一定时间窗口内的数据强一致性。 - 复制延迟可能存在
主从复制中,Slave可能存在相对Master的延迟。 - 哨兵模式必要性
哨兵模式增加了系统复杂性,但提供高可用必不可少。
总的来说,Redis的主要缺点包括:
- 数据依赖内存大小
- 内存溢出可能丢失数据
- 事务方式弱一致性
- 数据集合有限
- 只支持键值对模式
- 缺乏安全限制
- 缺乏丰富的监控
- 数据依赖内存一致性
- 复制可能存在延迟
- 哨兵模式增加复杂度
尽管如此,作为缓存数据库,Redis仍然非常强大和高效。只需要正确识别和规避其缺点即可很好地使用。