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 等关系型数据库,但是会遇到表结构不稳定的时候 (灵活) | 数据库大,特别大,列数据库,适合写多读少的场景 | 常规的数据存储 |
| 是否支持索引 | 支持 | 支持 | 支持 | 支持 |
| 是否支持事务 | 支持 | 不支持 | 支持 | 支持 |
# 最后
期望与你一起遇见更好的自己
