一、Redis 是什么
Redis是一个开源的 key-value 存储系统。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set —有序集合)和 hash(哈希类型)。
这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
在此基础上,Redis支持各种不同方式的排序。
与memcached一样,为了保证效率,数据都是缓存在内存中。
区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
并且在此基础上实现了master-slave(主从)同步。
二、Redis 的应用场景
1、配合关系型数据库做高速缓存
-
高频次,热门访问的数据,降低数据库 IO
-
分布式架构,做 session 共享
2、多样的数据结构存储持久化数据
由于其拥有持久化能力,利用其多样的数据结构存储特定的数据
最新 N 个数据 -> 通过 List 实现按自然事件排序的数据
排行榜,TopN -> 利用 zset(有序集合)
时效性的数据,比如手机验证码 -> Expire 过期
计数器,秒杀 -> 原子性,自增方法 INCR,DECR
去除大量数据中的重复数据 -> 利用 set 集合
构建队列 -> 利用 list 集合
发布订阅消息系统 -> pub/sub 模式