作为分布式缓存系统,Redis大量的应用于互联网行业的各类应用,即使是传统行业,只要是面向公众客户的互联网应用,因用户数的激增,也纷纷基于Redis做架构的改造。 像微博及 Twitter 这两大社交平台重度依赖 Redis 来承载海量用户访问,通过构建可灵活扩展的Redis集群让其能够承载上亿用户的访问规模。
我们按照Redis数据结构维度,其适用的具体场景如下: List: 双向列表,适用于最新列表,关注列表; Set: 适用于无顺序的集合,点赞点踩,抽奖,已读,共同好友; SortedSet : 具有排序加成功能,适用于排行榜,优先队列的实现; Hash:对象属性,不定长属性数; KV : 单一数值,适用于验证码,缓存等实现。
下面我们列举一些知名网站使用Redis的案例: 新浪微博 新浪微博最早大规模应用Redis,具体的应用的场景如下: hash sets: 关注列表, 粉丝列表, 双向关注列表; string(counter): 微博数, 粉丝数; sort sets(自动排序): TopN, 热门微博等, 自动排序; lists(queue): push/sub提醒。 唯品会 唯品会采用Redis集群架构,主要应用于后端业务,大数据实时推荐/ETL、风控、营销三大业使用。 在线有生产几十个cluster集群,约2千个实例,单个集群的实例最大达到250+。 今日头条 用户建模数据采用MySQL/MongoDB以及Memcache/Redis的数据库+缓存的架构, 用户建模数据是指当用户开始使用今日头条后,对用户动作的日志进行实时分析, 会对用户的每个动作进行学习,并对用户的兴趣进行挖掘所产生的数据。 阿里巴巴 阿里巴巴的很多业务线都用到了Redis,比如每个人关注店铺的列表、菜鸟的订单分发系统中订单的排序规则等。 南航 其电商营销平台采用了Redis-Cluster架构,用来缓存机票信息,航班动态更新,上线后查询提升效果十分显著,响应时间从 7-8 秒降到一百多毫秒,实现机票信息"秒出"。 还有大型游戏中排行榜,也会应用到Redis。 最后说一下12306网站,也用到了分布式缓存系统,用户缓存余票信息,但其背后的分布式缓存系统采用的是GemFire,而不是Redis,可以把GemFire理解为增强版的Redis。