Redis
是一个开放源代码( BSD
许可)的内存中数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图 ( bitMap
),超日志 ( hyperlog
),带有半径查询和流的地理空间索引 ( geohash
)。 Redis
还内置了副本, Lua
脚本, LRU
驱逐策略,事务和不同级别的磁盘持久性,并通过 Redis Sentinel
和 Redis Cluster
自动分区提供了高可用性。
Redis
还支持一下特性:
- 事务
- 发布 / 订阅模式
lua
脚本- 键值的允许生存时长.
LRU
驱逐- 故障自动转移
# 与其他数据库对比
与其他数据库的对比:
- | Redis | MongoDB | Hbase | Mysql |
---|---|---|---|---|
数据库类型 | NoSQL | NOSQL | NoSQL | 关系型数据库 |
数据类型 | key-value, 提供 String,List,zet 等多种结构 | Collection.Document.BSON | 基于列模式的映射数据库,可表示简单的 key-value 的映射关系。 | DB.table.row/col |
持久化 | 支持 (RDB/AOF) | 支持 | 支持 | 支持 |
是否支持集群 | 支持 | 支持 | 支持 | 支持 |
使用场景 | 缓存 (内存稳定,读写性能极佳), 读多写少 | 使用 Mysql 等关系型数据库,但是会遇到表结构不稳定的时候 (灵活) | 数据库大,特别大,列数据库,适合写多读少的场景 | 常规的数据存储 |
是否支持索引 | 支持 | 支持 | 支持 | 支持 |
是否支持事务 | 支持 | 不支持 | 支持 | 支持 |
# 最后
期望与你一起遇见更好的自己