1. Redis
1. 概念
Redis(REmote DIctionary Server)是用C语言开发的一个开源的高性能键值对(key-value)数据库
简单来说redis就是一个数据库,不过与传统数据库不同的是 redis的数据是存在内存中的,所以读写速度非常快,因此 redis被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis提供了多种数据类型来支持不同的业务场景。除此之外,redis支持事务、持久化、LUA脚本、LRU驱动事件、多种集群方案。
2. 特征
1、 数据间没有必然的联系
2、 内部采用单线程机制进行工作
3、 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s
4、 多数据类型支持
* 字符串类型 string
* 列表类型 list
* 散列类型 hash
* 集合类型 set
* 有序集合类型 sorted\_set
5、 持久化支持,可以进行数据灾难恢复
3. 应用
1、 为热点数据加速查询(主要场景),如热点商品,热点新闻,热点资讯,推广类等高访问量信息等
2、 任务队列,如秒杀,抢购,购票排队等
3、 即时信息查询,如排行榜,各类网站访问统计,公交到站信息,在线人数信息(聊天室、网站)、设备信号等
4、 时效性信息控制,如验证码控制,投票控制等
5、 分布式数据共享,如分布式集群架构中的session分离
6、 消息队列
7、 分布式锁
4. 数据存储类型介绍
业务数据的特殊性
4.1 作为缓存使用
1、 原始业务功能设计
* 秒杀
* 618活动
* 双11活动
* 排队购票
2、 运营平台监控到的突发高频访问数据
* 突发时政要闻,被强势关注围观
3、 高频、复杂的统计数据
* 在线人数
* 投票排行榜
4、 附加功能
* 单服务器升级集群
* Session管理
* Token管理
4.2 Redis数据类型(5种常用)
- string String
- hash HashMap
- list LinkedList
- set HashSet
- sorted_set TreeSet