相关文章:
Redis (Remote Dictionary Server) 是一个开源的,高性能的 key-value 数据库,其使用 C 语言进行编写,遵守 BSD 协议,并提供了多种语言的 API,默认端口为 6379,默认有 16 个数据库,默认使用数据库 0
一、特点
-
性能高效
- 读的速度是 110000 次/s,写的速度是 81000 次/s
-
支持数据持久化
- 可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存中使用
-
支持多种数据结构
-
String (字符串)
-
Hash (哈希)
-
List (列表)
-
Set (集合)
-
Sorted Set (有序集合)
-
Bitmap (不是实际的数据类型,而是在 string 类型上定义的一组面向位的操作)
-
Hyperloglog (概率数据结构,用于提供基数统计)
-
Geospatial (地理空间)
-
-
支持数据备份
- 即 master-slave 模式的数据备份 (即主从备份)
-
支持原子性操作
- 所有操作都是原子性的,要么全部执行,要么全部不执行
-
特性丰富
- 支持 publish/subscribe、通知 key 过期等特性
二、与其他 key-value 存储的不同
-
Redis 有着更为复杂的数据结构并且提供对它们的原子性操作,这是一个不同于其他数据库的进化路径
-
Redis 的数据类型都是基于基本数据结构的同时对使用者透明,无需进行额外的抽象
-
Redis 运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存
-
相比在磁盘上操作相同复杂的数据结构,在内存中操作起来非常简单,这样 Redis 可以做很多内部复杂性很强的事情;同时当数据持久化到磁盘时,是以紧凑的追加方式产生的,这是因为它们并不需要进行随机访问