在web后台发开面试中,经常会被问道memcache和redis的区别和使用情况。

  其中memcache和redis都是基于内存存储的缓存系统,存储形式key--value键值对的形式。

  区别:

  1、都是k-v模式,但是memcache只是string字符串类型,而redis还可以是hashmap,set ,zset ,list等数据结构。

  2、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

  3、Redis支持master-slave(主—从)模式应用。

  4、Redis单个value的最大限制是1GB, memcached只能保存1MB的数据

  针对上面的三点不同,主要介绍一下对redis的理解:

  1、redis 特殊数据结构的应用场景:

  a、hahsmap:可以将用户的会话session,购物车以hashmap存,提高响应的速度;

  b、list :可以解决数据一致问题,争抢的资源。将不同用户的对同一数据的操作,放在消息队列中,依次解决。

  c、set: 集合交集,例如:求公同的好友。

  d、zset(有序集合):计算,可以实现排行榜

  e、string :可以缓存页面

  2、持久化存储:

  redis有二种持久化存储的方法:RDB和AOF

  a、RDB(快照方式):快照是默认的持久化方式。这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb.可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key修改就自动做快照。

  b、AOF:redis将每一个写命令通过write追加到文件中,当redis重启会重新执行这些写命令,在内存中重建。可能os会在内核缓存write做的修改,可能不能立即写入文件,可以修改配置文件redis.conf。缺陷:可能执行了很多无用的命令,(这个问题已经改进了)

  3、虚拟内存:

  当redis的内存不足时,会将不经常用的k-v交换在虚拟swap中,并将其从内存中删除。当key不存在内存中,则需要在swap中加载相应的数据并返回。

  4、数据淘汰策略

  redis有很多淘汰策略,其中LRU:表示在设置过期时间的集合中,删除一个最近没用的数据.(memcache也有淘汰机制,这里只能讲了redis)

NoSQL数据库memcache和redis区别的更多相关文章

  1. SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.

    SSDB 一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis. 特性 替代 Redis 数据库, Redis 的 100 倍容量 LevelDB 网络支持, 使用 C/C++ ...

  2. 缓存数据库memcache、redis原理对比

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库     (这里 ...

  3. NoSql数据库简介及Redis学习

    NO-Sql数据库:Not Only不仅仅是SQL 定义:非关系型数据库:NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固 ...

  4. memcache和redis区别

    memcache官方定义 Free & open source, high-performance, distributed memory object caching system, gen ...

  5. nosql数据库:mongodb,redis,memcached,其优缺点和使用应用场景

    1.mongodb (1)是文档型的非关系型数据库,使用bson结构.其优势在于查询功能比较强大,能存储海量数据,缺点是比较消耗内存. (2)一般可以用来存放评论等半结构化数据,支持二级索引. 适合存 ...

  6. NoSQL数据库-MongoDB和Redis

    http://blog.csdn.net/tea_wu/article/details/19050277 http://www.uml.org.cn/sjjm/201212205.asp

  7. 数据库 --> 8种NoSQL数据库对比

    8 种 NoSQL 数据库对比 NoSQL是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储.现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改 ...

  8. 主流的Nosql数据库的对比

    主流的Nosql数据库的对比    MongoDB,Cassandra,CouchDB,Hypertable, Redis,Riak,Neo4j,Hadoop HBase, Couchbase,Mem ...

  9. Mongodb学习总结(1)——常用NoSql数据库比较

    虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 但是NoSQL数据库之间的不同,远超过两 SQ ...

随机推荐

  1. scikit-learn:3.4. Model persistence

    參考:http://scikit-learn.org/stable/modules/model_persistence.html 训练了模型之后,我们希望能够保存下来,遇到新样本时直接使用已经训练好的 ...

  2. eclipse 查看源代码

    文地址:http://blog.csdn.net/sushengmiyan/article/details/18798473 本文作者:sushengmiyan 我们在使用Eclipse的时候,经常是 ...

  3. ASP.NET动态网站制作(26)-- Ajax

    前言:这节课讲解关于Ajax的相关内容. 内容: 1.当点击页面中的一个按钮提交数据或请求数据的时候,整个页面的信息都会提交(不管信息是否是提交或者请求的数据,页面中所有的数据都提交),这样耗用的时间 ...

  4. Unity3D学习笔记——NGUI之UIInput

    UIInput:这个组件可以用于创建输入框和编辑文本. 效果图如下: 一:使用步骤 1.首先创建一个背景,可以用Sprite也可以是Widget. 我这里使用的是空白的Widget 2.为其添加一个L ...

  5. java string 首字母大小写方法

    String字符串需要进行首字母大小写改写,查询google,就是将首字母截取,转化大小写 + 首字母后面字符串 //首字母小写 public static String captureName(St ...

  6. Android Studio使用百度地图问题总结

    一.常见问题APP Scode码校验失败 一般出现这个问题都是ak不正确导致 可能出错的地方 1.SHA1值没有正确获取 正确获取SHA1值:在左下角打开Terminal终端,进入debug.keys ...

  7. windows下sshfs挂载远程文件夹-server could not connect故障解决

    使用sshfs挂载server上面的文件夹到windows中.轻松方便. 在之前的系统上挂载.没出问题. 近期买了块固态硬盘.装了个系统. 结果在系统上执行sshfs时报例如以下错误: 事实上非常ea ...

  8. NOIP2011提高组(选择客栈)

    题目链接:http://codevs.cn/problem/1135/ 题目大意:中文题...就不解释了 题目思路:看了其他巨巨的blog写的,dp思路 #include <iostream&g ...

  9. 【BZOJ3444】最后的晚餐 乱搞

    [BZOJ3444]最后的晚餐 Description [问题背景] 高三的学长们就要离开学校,各奔东西了.某班n人在举行最后的离别晚餐时,饭店老板觉得十分纠结.因为有m名学生偷偷找他,要求和自己暗恋 ...

  10. 使用mybatis向oracle数据库插入数据异常

    遇到了使用mybatis向oracle数据库插入数据异常的问题, 具体的报错如下:org.springframework.jdbc.UncategorizedSQLException: ### Err ...