Redis的优缺点,Redis(Remote Dictionary Server)是一个开源的、键值对(Key-Value)型的数据存储系统。它使用ANSIC语言编写、遵守BSD协议(Berkeley Software Distribution,伯克利软件发行版)、支持网络、可基于内存也可持久化的日志型数据库,并提供多种语言的API。
Redis的优点如下:
1)完全居于内存,数据实时地读/写内存,定时闪回到文件中,性能极高,读写速度快,Redis能支持超过100KB/s的读/写速率。
2)支持高并发,官方宣传支持10万级别的并发读/写。
3)支持机器重启后,重新加载模式,不会丢失数据。
4)支持主从模式复制,支持分布式。
5)丰富的数据类型--Redis支持Strings、Lists、Hashes、Sets及Ordered Sets数据类型。
6)原子--Redis的所有操作都是原子性的。
7)丰富的特性--Redis还支持Publish/Subscribe等特性。
8)开源。
Redis的缺点如下所示:
1)数据库容量受到物理内存的限制,不能实现海量数据的高性能读/写。
2)没有原生的可扩展机制,不具有自身可扩展能力,要依赖客户端来实现分布式读/写。
3)Redis使用的最佳方式是全部数据In-Memory。虽然Redis也提供持久化功能,但实际更多的是一个disk-backed功能,跟传统意义上的持久化有比较大的区别。
4)现在的Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
5)相比于关系型数据库,由于其存储结构相对简单,因此Redis并不能对复杂的逻辑关系提供很好的支持。
6)Redis不支持复杂逻辑查询,不适合大型项目要求。
Redis可以适用于以下场景:
• 在非可靠数据存储中,可以作为数据持久层或者数据缓存区。
• 对于读/写压力比较大,实时性要求比较高的场景下。
• 关系型数据库不能胜任的场景(如在SNS订阅关系)。