memcached 与 redis 的区别?

server/2024/12/25 12:34:03/

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)是 一 个 确 保 并 发 一 致 性 的 机 制 , 属于 “ 乐观 锁 ” 范畴 ; 原 理 很 简 单 : 拿 版 本 号 , 操 作 , 对 比 版 本 号 , 如 果 一 致 就 操
作, 不 一 致 就 放 弃 任 何 操 作 。 由 于 Redis 只使 用 单 核 , 而 Memcached 可以 使 用 多 核 , 所 以 平 均 每一个 核 上 Redis 在存 储 小 数 据 时 比 Memcached 性能 更 高 。而在 100k 以上 的 数据中 , Memcached 性能 要 高 于 Redis 。
7、 memcache 内存 管 理 : 使 用 Slab Allocation。原 理 相 当 简 单 , 预 先 分 配 一 系列大 小 固 定 的 组 ,然后 根 据 数 据 大 小 选 择 最 合 适 的 块 存 储 。避免 了 内 存 碎 片 。( 缺点: 不 能 变 长 , 浪 费 了 一 定 空 间 ) memcached 默认 情 况 下 下 一 个 slab 的最 大 值为前 一 个 的 1.25 倍。
8、redis 内存 管 理 : Redis 通过 定 义 一 个 数 组 来 记 录 所 有 的 内 存 分 配 情 况 , Redis采用 的 是 包 装 的 malloc/free, 相较 于 Memcached 的内 存 管理 方 法 来 说 , 要简单很 多 。由于 malloc 首先 以 链 表 的 方 式 搜 索 已 管 理 的 内 存 中 可 用 的 空 间 分 配 ,导致内 存 碎 片 比 较 多


http://www.ppmy.cn/server/153035.html

相关文章

对象、函数、原型之间的关系

在 JavaScript 中,对象、函数 和 原型 是三者紧密联系的核心概念。它们共同构成了 JavaScript 中面向对象编程的基石,并通过原型链实现了继承与代码复用。本文将从对象、函数、原型的基础概念到它们之间的关系进行详细的讲解,帮助你理解 Java…

Hive其三,数据库操作,小技巧设置,加载数据等操作

目录 一、操作数据库 二、关于表的操作 1)关于字符类型的 2)创建表 3) 修改表 4)删除表 5) 小案例演示 三、Hive中经常使用的小技巧的设置 四、加载数据 1)加载本地数据: 2)从HDFS加载到Hive中&a…

基于Spring Boot的校园商城系统

一、系统背景与意义 随着互联网技术的快速发展,电子商务已经渗透到生活的方方面面。校园作为一个相对封闭但活跃的社群,同样需要一个专门的线上平台来满足其特殊的需求。基于Spring Boot的校园商城系统正是为此目的而设计,它结合了微服务架构…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

【深入理解@EnableCaching】

深入理解EnableCaching EnableCaching 是 Spring Framework 中用于启用和配置缓存机制的一个注解。它通常被应用在配置类上,用来告诉 Spring 容器需要激活缓存相关的功能。Spring 的缓存抽象提供了一种简单的机制来管理缓存,可以减少重复的计算或数据库…

人工智能学习框架入门教程(一)

人工智能(AI)学习框架是指为开发、训练和部署人工智能模型提供的结构化工具和环境。它们帮助开发者实现AI项目的高效性、可扩展性、可维护性,并提供了优化算法、模型训练、评估、调优等功能。根据任务的不同,人工智能框架可以分为…

云边端架构的优势是什么?面临哪些挑战?

一、云边端架构的优势 降低网络延迟:在传统集中式架构中,数据需传输到云计算中心处理,导致网络延迟较高。而云边端架构将计算和存储推向边缘设备,可在离用户更近的地方处理数据,大大降低了网络延迟,提升了用…

ETCD备份还原

环境准备: master 192.168.8.128 node1 192.168.8.129 k8s版本: 一:安装etcdctl工具 1.1下载安装包: wget https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz 1.2解压&…