热门搜索 :
考研考公
您的当前位置:首页正文

redis简介及应用场景

来源:东饰资讯网

简介

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
其中,值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型。
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。

redis和mongodb对比
  1. 简介
    mongoDb解决了mysql大数据量下效率下降的问题,但是在复杂查询及事务处理这块也相对弱了很多。redis相对MongoDb而言,提供了更好的内存级存取数据及主从读写分离,效率更高。
    MongoDB更类似MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

  2. 内存管理机制
    Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。
    MongoDB数据存在内存,由Linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

  3. 支持的数据结构
    Redis支持的数据结构丰富,包括hash、set、list等。
    MongoDB数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

  4. 性能
    redis性能优于mogodb,但二者性能都比较高,应该说都不会是瓶颈。
    Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制。业务软件往主服务器写数据,通过从服务器读数据,读写分离,相比mongoDb性能也更高。
    mongoDb则

  5. 可靠性
    二者均支持持久化。

  6. 集群
    MongoDB集群技术比较成熟,Redis从3.0开始支持集群。MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程顺序写入,虽然支持集群,也仅限于主-从模式。

  7. 不适用场景
    Ø 需要使用复杂sql的操作
    Ø 事务性系统

  8. 使用便捷性
    redis是主要把数据存储在内存中(当然可以把其存储至硬盘上,这也是写shell的必要条件之一),其“缓存”的性质远大于其“数据存储”的性质,其中数据的正删改查也只是像变量操作一样简单。而mongodb却是一个“存储数据”的系统,增删改查数据的时候有“与或非”条件,查询数据的方式也能像SQL数据库一样灵活,这是redis所不具备的。

如何设计redis+mysql

  • 核心原理:
    保持数据库与redis的数据一致性。类似如下图:


  • 具体请查看:


    蚂蜂窝一个朋友,他们公司是直接把sql这块封装了orm,在使用其orm进行写操作时候,同时把数据写到数据库及redis中,进行读操作时,则从redis中直接读取。

应用场景

Top