大型公司分布式我爱编程

redis简介及应用场景

2017-05-22  本文已影响123人  一只好奇的茂

简介

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作者谈Redis应用场景
Redis 的 5 个常见使用场景
徐汉彬:Web系统大规模并发——电商秒杀与抢购
【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合 PHP解决抢购、秒杀
【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
利用redis + lua解决抢红包高并发的问题
秒杀系统架构优化思路

上一篇下一篇

猜你喜欢

热点阅读