在今天下午进行的“NoSQL数据库创新专场”中,新浪微博开放平台资深工程师唐福林发表主题演讲《新浪微博:Redis的大数据之路》,介绍了NoSQL数据库Redis在新浪微博的使用场景及经验教训。
▲新浪微博开放平台资深工程师唐福林
唐福林首先分享了他对大数据的理解。他认为大数据有两种截然不同的概念,一种是线下大数据,即在持久化的介质中存储的、用于数据挖掘的、结构化的数据;另一种是线上大数据,即在在内存中存储的、用于在线服务的、结构化或半结构化或混合结构的数据。如果数据处理要求比单台机器能力高一个数量级的话,这样的数据就被称为大数据。
Redis是一个基于内存的Key-Value存储的NoSQL引擎。与其他Key-Value引擎不同,Redis的Value可以支持多种数据结构,如哈希、List、Set等。但是一直以来,Redis的持久化方案并非完美。从rdb到aof,再到已经夭折的vm,Redis的持久化之路一直走的很坎坷。由于持久化的不完美,以及全部在内存中处理数据的特性,使得Redis在面对数据量持续增长的时候,总体拥有成本(TCO)也随之线性增长。
唐福林表示,新浪微博从2010年底开始使用Redis,各项业务指标在经历了2011年全年的疯狂增长之后,他们发现在很多场合Redis已经不再适用。唐福林认为,Redis适用于数据量不太大的存储,以及数据量大的缓存。在选择数据存储介质的时候要分清数据量的大小和数据的冷热。小而热的数据适合使用内存,大而冷的数据适合使用磁盘,大而热的数据是否适合使用SSD,仍待探讨。
▲新浪微博使用Redis的经验教训:100G以上的数据可以用作缓存
演讲嘉宾介绍:唐福林,新浪微博开放平台资深工程师,目前负责新浪微博开放平台底层性能优化,曾负责t.cn短链,微博用户关系,计数器等底层服务。曾负责过包括新浪邮箱全文搜索在内的多个基于Lucene的垂直搜索引擎开发,以及新浪爱问和新浪播客的运维。对承载大数据量、高并发的互联网基础设施建设有丰富的经验。
新浪微博技术团队简介:新浪微博开放平台,平台研发团队,负责微博底层功能实现及性能优化。 这里有亿万的用户,这里有方舟子和韩寒,这里有一切热点事件和争论。围观改变中国,这里是新浪微博。这里有@timyang大牛掌舵,这里有海量数据,这里有变态的并发,这里有技术Geek们需要的一切。
作者:王玉圆
来源: IT168
原文标题:唐福林:新浪微博的Redis大数据之路