Redis的优缺点

redis是一个key-value存储系统,数据存储在内存中,它的优点主要如下:

  1. 支持多种数据类型 包括set,zset,list,hash,string这五种数据类型,操作非常方便。比如,如果你在做好友系统,查看自己的好友关系,如果采用其他的key-value系统,则必须把对应的好友拼接成字符串,然后在提取好友时,再把value进行解析,而redis则相对简单,直接支持list的存储(采用双向链表或者压缩链表的存储方式)。

  2. 持久化存储 作为一个内存数据库,最担心的,就是万一机器死机,数据会消失掉。redi使用rdb和aof做数据的持久化存储。主从数据同时,生成rdb文件,并利用缓冲区添加新的数据更新操作做对应的同步。

  3. 丰富的特性 pub/sub,key过期策略,事务,支持多个DB等。

  4. 性能很好 由于是全内存操作,所以读写性能很好,可以达到10w/s的频率。公司有项目使用redis,目前的访问频率是80w/s,通过适当的部署,线上运行一切ok。

redis的缺点主要如下:

  1. 由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

  2. 如果进行完整重同步,由于需要生成rdb文件,并进行传输,会占用主机的CPU,并会消耗现网的带宽。不过redis2.8版本,已经有部分重同步的功能,但是还是有可能有完整重同步的。比如,新上线的备机。

  3. 修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务。

    原文作者:月下独酌123
    原文地址: https://www.jianshu.com/p/929bc7ee8063
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞