Redis(Remote Dictionary Server ),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
1、数据类型
- string(字符串):最基本的k-v存储 ,适合验证码、配置信息等
- list(列表):适合有序/固定的列表。比如行政区、字典表、消息队列等。
- set(集合):支持交集、并集、差集等操作。可以用来找共同点等。
- hash(哈希):类似于唯一标识,value对应详情。适合存储文章内容、商品内容等详情。
- zset(有序集合):增强版本增加了一个score参数,用来排序,适合排行榜类的数据存储
2、优点
- 速度快。数据存储在内存中,查找和操作的时间复杂度都是O(1)。类似于HashMap
- 多种数据类型,应用场景丰富
- 支持事务特性、所有操作都是原子性
- 支持数据的持久化,可以将数据保存在磁盘中
- 支持主-从模式的数据库备份
- 性能高。读取速度可达到110000次/s;写81000次/秒
- 支持publish/subcribe、通知、key过期特性
3、场景举例
- 缓存热点数据、字典表、行政区、用户登录信息、配置信息
- 计数器、点赞数、浏览数
- 消息队列、建议采用专门的消息中间件会更可靠。
- 最新列表、最新文章列表上架新品列表
- 排行榜、文章排名、商品排名
- 分布式锁、单线程机制、电商秒杀、全局增量ID
- 时效信息存储、验证码5分钟失效