Redis 诞生历程

283 阅读4分钟
  • 简介

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis的作者,叫Salvatore Sanfilippo,来自意大利的西西里岛,居住在卡塔尼亚。目前供职于Pivotal公司。他使用的网名是antirez

  • 诞生

08 年的时候有一个意大利西西里岛的小伙子,笔名**antirez(invece.org/)**,创建了一个访客… 里面嵌入一段JS 代码就行了,当页面被访问的时候,就会自动把访客的信息发送到这些网站统计的服务器,然后我们登录后台就可以查看数据了。

LLOOGG.COM 提供的就是这种功能,它可以查看最多10000 条的最新浏览记录。这样的话,它需要为每一个网站创建一个列表(List),不同网站的访问记录进入到不同的列表。如果列表的长度超过了用户指定的长度,它需要把最早的记录删除(先进先出)。

当LLOOGG.COM 的用户越来越多的时候,它需要维护的列表数量也越来越多,这种记录最新的请求和删除最早的请求的操作也越来越多。LLOOGG.COM 最初使用的数据库是MySQL,可想而知,因为每一次记录和删除都要读写磁盘,因为数据量和并发量太大,在这种情况下无论怎么去优化数据库都不管用了。

考虑到最终限制数据库性能的瓶颈在于磁盘,所以antirez 打算放弃磁盘,自己去实现一个具有列表结构的数据库的原型,把数据放在内存而不是磁盘,这样可以大大地提升列表的push 和pop 的效率。antirez 发现这种思路确实能解决这个问题,所以用C 语言重写了这个内存数据库,并且加上了持久化的功能,09 年,Redis 横空出世了。从最开始只支持列表的数据库,到现在支持多种数据类型,并且提供了一系列的高级特性,Redis 已经成为一个在全世界被广泛使用的开源项目。

原文链接:blog.csdn.net/leon_jinhai…

  • 非关系型数据库特点NoSQL

1.存储非结构化数据,比如:文本、图片、音频、视频

2.表与表之间没有关联,可扩展性强

3.保证数据的最终一致性,遵循BA(Basically Available基本可用)S(Soft State软状态)E(Eventually Consistent最终一致性)理论

4.支持海量数据的存储和高并发的高效读写

5.支持分布式,能够对数据进行分片存储,扩容简单

  • 对比MySQL

1.基于行存储数据,二维的模式

2.存储结构化的数据,数据存储有固定的模式

3.表与表之间存在关联关系

4.支持SQL(结构化查询语言),支持复杂的关联查询

5.支持事务**A(原子性)C(一致性)I(隔离性)D(持久性)**来提供严格或者实时数据一致性

  • 非关系型数据库(网站)

hostingdata.co.uk/nosql-datab… (翻墙快)

根据**不同的存储内容(存储介质的不一样)**对非关系型数据产品进行分类,是对非关系型数据的应用总结

  • Redis 基本特征(优势)

1.Redis是内存型的数据库,也就是说Redis中的key-value对是存 储在内存中的,因而效率比磁盘型的快

2.Redis的工作模式为单线程,不需要线程间的同步操作。Redis采用单线程主要因为其瓶颈在内存和带宽上,而不是CPU

3.Redis中key-value的value不仅可以是字符串,也可以是复杂的 数据类型,如链表、集合、散列表等

4.Redis支持数据持久化,可以采用RDB、AOF、RDB&AOF三 种方案。计算机重启后可以在磁盘中进行数据恢复

5.Redis支持主从结构,可以利用从实例进行数据备份

6.支持多种编程语言

7.功能丰富:事务、发布订阅、分布式锁、pipeline、lua