美文网首页
Redis的前世今生

Redis的前世今生

作者: 抬头就是阳光_ | 来源:发表于2021-08-01 13:46 被阅读0次

    Redis 是什么 ?

    Redis(Remote Dictionary Server ),即远程字典服务,作者是Salvatore Sanfilippo,来自意大利的西西里岛。

    1、使用ANSI C编写的开源的、免费的;

    2、支持多种数据结构(字符串、哈希、列表、集合、有序集合);

    3、遵守BSD协议,基于内存存储的 K-V 数据库,不同的级别的磁盘持久化;

    4、提供多种语言的API;

    5、C/S通讯模型单进程单线程模型

    为什么要有Redis ?

    常识储备

    1、数据可以存放在磁盘文件中和内存中;

    2、影响访问磁盘文件速度的有两个重要指标:带宽(吞吐量)、寻址。在带宽一定的情况下磁盘文件的寻址是毫秒级(ms),内存的寻址是纳秒(ns),两者相差了10万倍左右;

    诞生背景

    1、早期数据存放在磁盘文件中,查询效率受带宽和寻址之间的影响,在数据量很小的情况下,查询效率并不会很慢;

    2、当数据量很大的情况下(比如这个文件有10g),从一个文件中检索出我们需要的内容(比如说字符串),此时寻址的时间就会变得很漫长,严重影响客户端的体验;

    3、此时数据库随潮流诞生,比如MySql,虽然数据也是存放在磁盘文件中,但是会采用datepage分治,在底层抽象维护成一个个的数据格子,同时在内存中维护索引,利用内存检索快的特点,快速命中目标,然后快速命中格子,检索出自己需要的数据;

    4、如果数据量特别特多大,并且索引无法命中,此时数据库仍然会对文件从头到尾扫描,如果这个时候采用基于内存的关系型数据库,那查询效率就提高了将近10万倍。 SAP 关系型内存数据库就诞生了,但是它有一个显著的特点,特别昂贵,一般企业用不起。

    5、我们既想提升查询效率,又不想花钱怎么办呢?我们继续思考,磁盘中的数据是否是我们经常用的呢?能否把经常用的和不经常用的区分开,也就是将热点数据拿出来存在内存中,冷数据等待要查询的时候再加载到内存,并定期删除内存呢?

    在这种前提下,Redis来了。

    Redis可以用来做什么 ?

    1、存放数据

    2、session共享、分布式锁

    3、消息发布、订阅

    相关文章

      网友评论

          本文标题:Redis的前世今生

          本文链接:https://www.haomeiwen.com/subject/nqfdpltx.html