memcached 与redis 的区别?

memcached 与redis 的区别?1 Redis 不仅仅支持简单的 k v 类型的数据 同时还提供 list set zset hash 等数据结构的存储 而 memcache 只支持简单数据类型 需要客户端自己处理复杂对象 2 Redis 支持数据的持久化 可以将内存中的数据保持在磁盘中 重启的时候可以再次加载进行使用 PS 持久化在 rdb aof 3 由于 Memcache 没有持久化机制 因此宕机所有缓存数据失效 Redis 配置为持久化 宕机重启后 将自动加载宕机时刻的数据到缓存系统中 具有更好的灾备机制 4 Memcache 可以

1、Redis 不仅仅支持简单的k/v 类型的数据,同时还提供list,set,zset,hash等数据结构的存储。而memcache 只支持简单数据类型,需要客户端自己处理复杂对象

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

3、由于Memcache 没有持久化机制, 因此宕机所有缓存数据失效。Redis 配置为持久化,宕机重启后,将自动加载宕机时刻的数据到缓存系统中。具有更好的灾备机制。

4、Memcache 可以使用Magent 在客户端进行一致性hash 做分布式。Redis 支持在服务器端做分布式(PS:Twemproxy/Codis/Redis-cluster 多种分布式实现方式)

5、Memcached 的简单限制就是键(key)和Value 的限制。最大键长为250 个字符。可以接受的储存数据不能超过1MB(可修改配置文件变大), 因为这是典型slab 的最大值,不适合虚拟机使用。而Redis 的Key 长度支持到512k。

6、Redis 使用的是单线程模型, 保证了数据按顺序提交。Memcache 需要使用cas 保证数据一致性。CAS( Check and Set)是一个确保并发一致性的机制,属于“ 乐观锁” 范畴;原理很简单:拿版本号, 操作,对比版本号,如果一致就操作, 不一致就放弃任何操作cpu 利用。由于Redis 只使用单核, 而Memcached 可以使用多核,所以平均每一个核上Redis 在存储小数据时比Memcached 性能更高。而在100k 以上的数据中,Memcached 性能要高于Redis 。

7、memcache 内存管理:使用Slab Allocation。原理相当简单, 预先分配一系列大小固定的组,然后根据数据大小选择最合适的块存储。避免了内存碎片。( 缺点: 不能变长,浪费了一定空间)memcached 默认情况下下一个slab 的最大值为前一个的1.25 倍。

8、redis 内存管理: Redis 通过定义一个数组来记录所有的内存分配情况, Redis采用的是包装的malloc/free, 相较于Memcached 的内存管理方法来说,要简单很多。由于malloc 首先以链表的方式搜索已管理的内存中可用的空间分配,导致内存碎片比较多

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208143.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午12:15
下一篇 2026年3月19日 下午12:16


相关推荐

  • java之二维数组的初始化

    java之二维数组的初始化二维数组的格式:二维数组的内存图:二维数组的例子:

    2022年5月16日
    49
  • Spring Cloud feign使用

    Spring Cloud feign使用SpringCloudf 使用前言环境准备应用模块应用程序应用启动 feign 特性综上 1 前言我们在前一篇文章中讲了一些我使用过的一些 http 的框架服务间通信之 Http 框架 其实最终还是准备讲述 springcloudf 使用 springcloudf 完成更为优雅的 http 的调用方式 以及在服务之间的调用与远程

    2026年3月17日
    1
  • c++入门教程–-6循环语句

    c++入门教程–-6循环语句

    2021年3月12日
    138
  • webstorm 2022激活码_在线激活

    (webstorm 2022激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    892
  • Leetcode 238 Product of Array Except Self 时间O(n)和空间O(1)解法

    Leetcode 238 Product of Array Except Self 时间O(n)和空间O(1)解法

    2022年1月30日
    37
  • 越狱完发现bigboss源是空白

    越狱完发现bigboss源是空白越狱完发现 bigboss 源是空白 不能更新 sbsettings 貌似 5 2 2 的会造成六分之一图标和白图标的错误 必须用 5 2 1 的才行 本人亲测刷了 N 次固件恢复才发现的 让 bigboss 源显示的办法如下 nbsp 1 恢复固件以后 进通用 讲语言设置为英文 越狱后进 cydia 刷新出 bigboss 源以后再退出讲语言换成简体中文 nbsp 2 已经越狱但是发现 bigboss 源空白的朋友 不用担心 先删除空白的

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号