Redis和Memcache的区别总结

 更新时间:2014年05月26日 10:54:21   作者:  
这篇文章主要介绍了Redis和Memcache的区别,用三个总结来说明Redis和Memcache的区别,需要的朋友可以参考下

总结一:

memcache官方定义

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

redis官方定义

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

版权相同

它们都是使用的bsd协议,使用它的项目可以用于商业用户,不必发布二次修改的代码,可以修改源代码。

数据类型

redis数据类型丰富,支持set liset等类型
memcache支持简单数据类型,需要客户端自己处理复杂对象

持久性

redis支持数据落地持久化存储
memcache不支持数据持久存储

分布式存储

redis支持master-slave复制模式
memcache可以使用一致性hash做分布式

value大小不同

memcache是一个内存缓存,key的长度小于250字符,单个item存储要小于1M,不适合虚拟机使用

数据一致性不同

redis使用的是单线程模型,保证了数据按顺序提交。
memcache需要使用cas保证数据一致性。CAS(Check and Set)是一个确保并发一致性的机制,属于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操作,不一致就放弃任何操作

cpu利用

redis单线程模型只能使用一个cpu,可以开启多个redis进程

总结二:

1.Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。
2.Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3.Redis支持数据的备份,即master-slave模式的数据备份。
4.Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
我个人认为最本质的不同是Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcached只是简单的K/V缓存

总结三:

redis和memecache的不同在于:

1、存储方式:
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
redis有部份存在硬盘上,这样能保证数据的持久性。
2、数据支持类型:
redis在数据支持上要比memecache多的多。
3、使用底层模型不同:
新版本的redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
4、运行环境不同:
redis目前官方只支持LINUX 上去行,从而省去了对于其它系统的支持,这样的话可以更好的把精力用于本系统 环境上的优化,虽然后来微软有一个小组为其写了补丁。但是没有放到主干上

memcache只能当做缓存,cache
redis的内容是可以落地的,就是说跟mongodb有些类似,然后redis也可以作为缓存,并且可以设置master-slave

相关文章

  • dbeaver导入导出数据库简单图文教程

    dbeaver导入导出数据库简单图文教程

    DBeaver是一款适用于开发人员、数据库管理员和分析师的多平台、多数据库管理工具,这篇文章主要给大家介绍了关于dbeaver导入导出数据库的相关资料,需要的朋友可以参考下
    2024-01-01
  • 数据库服务器构建和部署检查列表详解

    数据库服务器构建和部署检查列表详解

    这篇文章主要介绍了数据库服务器构建和部署检查列表的相关内容,小编觉得挺不错的,这里分享给大家,供各位参考。
    2017-10-10
  • 什么是数据库索引 有哪些类型和特点

    什么是数据库索引 有哪些类型和特点

    这篇文章主要介绍了网站数据库的优化最为基础的优化措施就是建立数据库索引了,这里就介绍一下,什么是数据库索引?有哪些类型和特点
    2015-10-10
  • SQL 注入式攻击的本质

    SQL 注入式攻击的本质

    SQL 注入式攻击,又是注入式攻击,没想到2008年这个老掉牙的东西又出来搅风搅雨
    2008-12-12
  • 收藏的SQL知识以及SQL语句简单实践通俗易懂

    收藏的SQL知识以及SQL语句简单实践通俗易懂

    首先说明,这个笔者2年前学习SQL的遗漏下来的笔记,由于参加完腾讯的笔试,内容比较偏向数据机构和编译以及数据库,刚好要换台本本,心里不想把它弄死在硬盘里,觉得蛮好的,所以把它都分享了
    2012-06-06
  • 详解分库分表后非分片键如何查询

    详解分库分表后非分片键如何查询

    这篇文章主要为大家介绍了分库分表后非分片键如何查询详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 详解Navicat Premium基本使用

    详解Navicat Premium基本使用

    Navicat是一套数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。这篇文章主要介绍了详解Navicat Premium基本使用,需要的朋友可以参考下
    2020-11-11
  • SQL中游标(cursor)的基本使用实例

    SQL中游标(cursor)的基本使用实例

    当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT语句,但如果从某一结果集中逐一地读取一条记录呢?游标为我们提供了一种极为优秀的解决方案,这篇文章主要给大家介绍了关于SQL中游标(cursor)基本使用的相关资料,需要的朋友可以参考下
    2021-11-11
  • 关于navicat事务自动提交问题

    关于navicat事务自动提交问题

    这篇文章主要介绍了关于navicat事务自动提交问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 数据库的设计方法、规范与技巧

    数据库的设计方法、规范与技巧

    数据库的设计方法、规范与技巧...
    2007-03-03

最新评论