什么是 Redis? Redis 的优点与缺点有哪些?
什么是 Redis?
Redis 全称 Remote Dictionary Server,即为远程字典服务。它由意大利人 Salvatore Sanfilippo 使用 C 语言编写,遵守 BSD 协议,是一个开源的、高性能的、基于内存实现的 key-value
非关系型缓存数据库。
Redis 的优点与缺点
优点
- 读写性能非常优异。据官方统计,Redis 的读速度可达到 110000 次/s, 写数据速度可达到 81000次/s,以下是官方给出的性能数据;
- 存储支持丰富的数据结构,如 String 字符串、List 链表、Set 集合、Zset 有序集合和 Hash 哈希类型;
- 支持数据持久化,就是说支持将数据存储到磁盘上,能够同时支持 AOF 和 RDB 两种持久化方式;
- 支持事务,在 Redis 中,所有操作都是原子性的,也就说要么都执行成功,要么执行失败。单个操作是原子性这个毋容置疑,当需要保证多个操作也是原子性的时候,需要通过 MULTI 和 EXEC 指令包起来。
- 支持主从复制,Redis 会自动将数据同步到从节点,常用于数据的读写分离场景;
- 丰富的特性,除了上面说到的这些,Redis 还支持发布订阅,通知,key 过期自动删除等特性。
缺点
- 因为数据存于内存中,所以机器的内存大小限制了数据库的容量,无法应用于海量数据场景,仅适用于数据量较小的高性能操作与运算中;
- 较难支持在线扩容,在集群容量达到上限时,在扩容会变得非常复杂。为了避免这一问题,运维人员在系统上线时,需提前预留足够的空间,会导致硬件资源的浪费。