磁盘作为存储介质,I/O瓶颈是最大的问题,当文件越来越大,磁盘寻址和带宽远低于内存,磁盘比内存寻址慢了10w倍
2008年萨尔瓦多在开发一个进行网站实时统计软件项目(LLOOGG),项目的实时统计功能需要频繁的进行数据库的读写(对数据库的读写要求很高—数千次/s),MySQL满足不了项目的需求,萨尔瓦多就使用C语言自定义了一个数据存储系统—Redis。考虑到最终限制数据库性能的瓶颈在于磁盘,他自己去实现一个具有列表结构的数据库的原型,把数据放在内存而不是磁盘,这样可以大大地提升列表的 push 和 pop 的效率。萨尔瓦多发现这种思路确实能解决这个问题,所以用 C 语言重写了这个内存数据库,并且加上了持久化的功能。2009 年,Redis 横空出世了。从最开始只支持列表的数据库,到现在支持多种数据类型,并且提供了一系列的高级特性,Redis 已经成为一个在全世界被广泛使用的开源项目。后来萨尔瓦多不满足仅仅在LLOOGG这个项目中使用redis,就对redis进行产品化并进行开源,以便让更多的⼈能够使用。
LLOOGG.COM 提供的类似于访客的功能,它可以查看最多 10000 条的最新浏览记录。这样的话,它需要为每一个网站创建一个列表(List),不同网站的访问记录进入到不同的列表。如果列表的长度超过了用户指定的长度,它需要把最早的记录删除(先进先出)。
Redis 1.0.0 Redis的第一个版本于2009年发布,主要提供了基本的键值对存储功能,包括设置键值、获取值、删除键等操作。此外,还提供了持久化功能,可以将数据存储到硬盘上。
Redis 2.0.0 在2011年,Redis发布了2.0版本,这个版本引入了新的数据类型,如哈希表和集合。哈希表可以存储多个键值对,而集合则可以存储不重复的元素。此外,还增加了事务功能和Lua脚本功能,提高了数据操作的灵活性和性能。
Redis 3.0.0 在2013年,Redis发布了3.0版本,这个版本引入了新的持久化方式——RDB和AOF。RDB通过生成数据快照的方式实现持久化,而AOF则通过记录操作日志的方式实现持久化。此外,还增加了发布订阅功能和Lua脚本的缓存机制。
Redis 4.0.0 在2015年,Redis发布了4.0版本,这个版本引入了集群功能,实现了数据的分布式存储和读取。此外,还增加了二进制安全、IPv6支持和流式API等功能。
Redis 5.0.0 在2018年,Redis发布了5.0版本,这个版本引入了字符串的修改操作、新的数据类型——有序集合和地理空间索引。此外,还增加了复制过滤和事务执行时支持对个别键的放弃等特性。
Redis 6.0.1
2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。
Redis 7.0
2022年4月27日,经历接近一年的开发、三个候选版本,Redis 7.0终于正式发布,这是Redis历史上改变最多的一个大版本,它不仅包含了50多个新命令,还有大量核心新特性与改进,这些不仅能够解决用户使用中的诸多问题,还进一步拓展了Redis的使用场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。