从一个故事开始

08 年的时候有一个意大利西西里岛的小伙子,笔名antirez(http://invece.org/),创建了一个访客信息网站LLOOGG.COM。有的时候我们需要知道网站的访问情况,比如访客的IP、操作系统、浏览器、使用的搜索关键词、所在地区、访问的网页地址等等。在国内,有很多网站提供了这个功能,比如CNZZ,百度统计,国外也有谷歌的GoogleAnalytics。我们不用自己写代码去实现这个功能,只需要在全局的footer 里面嵌入一段JS 代码就行了,当页面被访问的时候,就会自动把访客的信息发送到这些网站统计的服
务器,然后我们登录后台就可以查看数据了。

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

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

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

为什么叫REDIS 呢?它的全称是REmote DIctionary Service,直接翻译过来是远程字典服务。

从Redis 的诞生历史我们看到了,在某些场景中,关系型数据库并不适合用来存储我们的Web 应用的数据。那么,关系型数据库和非关系型数据库,或者说SQL 和NoSQL,到底有什么不一样呢?

Redis的诞生历程相关推荐

  1. 《悟透JavaScript》诞生历程精美配乐视频

    http://www.tudou.com/programs/view/FvU5NoPoKC8/ 这里没法播,只能先换个形式吧: 我是怎样诞生的? 这样的吗? 话说:一位超级喜欢的在写了 引来一阵惊呼 ...

  2. 用最少的机器支撑万亿级访问,微博6年Redis优化历程

    https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547263&idx=1&sn=fe484b24660b7e ...

  3. 数据库历险记(二) | Redis 和 Mecached 到底哪个好?

    文章首发于微信公众号「陈树义」,专注于 Java 技术分享的社区.点击链接扫描二维码,与500位小伙伴一起共同进步.微信公众号二维码 http://p3npq6ecr.bkt.clouddn.com/ ...

  4. redis学习笔记,常用方法

    Redis-day01-note Redis介绍 特点及优点 1.开源的,使用C编写,基于内存且支持持久化 2.高性能的Key-Value的NoSQL数据库 3.支持数据类型丰富,字符串strings ...

  5. JAVA知识体系之分布式篇(七)——Redis

    1.Redis概述 1.1 Redis诞生历程   Redis的作者笔名叫antirez,2008年的时候他做了一个记录网站访问情况的系统,比如每天有多少个用户,多少个页面被浏览,访客的IP.操作系统 ...

  6. Redis 入门与数据结构

    1.redis 诞生历程 08 年的时候有一个意大利西西里岛的小伙子,笔名 antirez(http://invece.org/),创建了一个访客信息网站 LLOOGG.COM.有的时候我们需要知道网 ...

  7. 【起】Redis 概述篇——带你走过 Redis 的前世今生

    前言 距离过年那会闲在家更新的 MySQL 系列已经过去一段时间了,这段时间一直在忙其他的,所以博客的更新也就搁置了,但是一直在想着要更新啥内容比较好,刚好朋友给了我一本 Redis 的书籍,我就打算 ...

  8. Redis学习(一)基础篇

    目录 1.Redis诞生历程 2.SQL 与 NoSQL 3.Redis特性 4.Redis 安装启动 4.1 下载 4.2 启动 4.3 客户端工具 5.基本操作 5.1Redis的连接 5.2 R ...

  9. 超全,超详细的Redis基础,你掌握了多少?

    Redis 入门 Redis 诞生历程 从一个故事开始 08年的时候有一个意大利西西里岛的小伙子,笔名antirez(http://invece.org/),创建 了一个访客信息网站LLOOGG.CO ...

最新文章

  1. 神经网络结构优化:这篇论文让你无惧梯度消失或爆炸,轻松训练万层神经网络...
  2. 保研计算机英语词汇,实用英语口语:“保研”怎么说?
  3. JavaWeb课程复习资料(二)——idea创建JDBC(FactoryDB)
  4. 双十一囤点知识干货!
  5. postgresql 删除触发器_postgresql 触发器
  6. WMS仓储系统在管理中产生的盈利
  7. 在英特尔® 架构平台上开发和优化基于 NDK 的 Android 游戏应用
  8. java.servlet js,调用servlet方法
  9. 吴恩达神经网络和深度学习-学习笔记-44-anchor box
  10. c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
  11. DPDK示例l3fwd性能测试
  12. 用 js判断 一个数是否是素数(质数)_js 基础算法题(二)
  13. 你必须掌握的人生定律
  14. canvas绘制动态图片
  15. Python替换月份为英文缩写
  16. 大数据征信成撬动消费金融的支点?
  17. 使用ip地址计算子网掩码的方法
  18. SVN服务端的搭建和简单使用
  19. 【那些年我们一起看过的论文】之《Real-Time Loop Closure in 2D LIDAR SLAM》
  20. sql where条件添加判断 case when... then..else..end,示例说明

热门文章

  1. linux查看文件的编码格式的方法 set fileencoding
  2. shell脚本常用参数与格式
  3. HDU 5938 Four Operations 【字符串处理,枚举,把数字字符串变为数值】
  4. Web 开发时需要注意到的一些性能问题
  5. Collect proper diagnostic data is very important
  6. sql server 计算两个时间 相差的 几天几时几分几秒
  7. mysql学习-初识mysql
  8. 父页面与子ifream传值,父页面获取子页面document元素与方法
  9. 学习在网页中应用大图片背景的20个精美案例
  10. Exchange 2010之接受域