Redis能替代关系型数据库吗? 为什么?
不能替代, 两者侧重点不同, redis是非关系型数据库,以k-v形式存储的内存数据库。
1,基于数据存在于缓存中如果redis服务器出现宕机的情况,会造成数据未来得及保存, 导致数据丢失,不安全。
2,redis的缺点也非常明显,仅提供最基本的hash set, list, sorted set等基于数据类型,不分表,没有schema,没有索引,没有外键,缺少int/date等基本数据类型,多条件查询需要通过集合内联(sinter,zinterstore)和连接间接实现,操作不便,开发效率低,可维护性不佳; 因此一般不将其视为完整的数据库单独使用,很多网站将redis作为高速缓存和session状态存储层,然后再与其他数据库搭配使用。
3,redis对数据事务支持, ACID里边只支持一致性和隔离性, 且redis的事务不支持回滚。