memcached 与 redis 的区别?

news/2024/12/26 5:09:41 标签: memcached, redis, 数据库

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.niftyadmin.cn/n/5799844.html

相关文章

【vue】css模拟玻璃球体效果(带高光)

div部分&#xff1a; <div class"wave_ball"><!-- 高光部分--><div class"lightBg light1"></div><div class"lightBg light2"></div></div>样式部分&#xff1a; .wave_ball {position: …

es快速扫描

介绍 Elasticsearch简称es&#xff0c;一款开源的分布式全文检索引擎 可组建一套上百台的服务器集群&#xff0c;处理PB级别数据 可满足近实时的存储和检索 倒排索引 跟正排索引相对&#xff0c;正排索引是根据id进行索引&#xff0c;所以查询效率非常高&#xff0c;但是模糊…

Linux搭建TRELLIS详细流程

TRELLIS是最新的3D生成模型,官网地址如下: https://github.com/microsoft/TRELLIS 下面是详细的搭建流程。 由于是在Ubuntu系统上搭建的,下面操作仅限Ubuntu系统查看。 不过Windows系统大同小异,而且青龙大佬已经做了相关整理。 Windows系统的可以去看青龙大佬的b站视…

【es6复习笔记】迭代器(10)

什么是迭代器&#xff1f; 迭代器&#xff08;Iterator&#xff09;是一种对象&#xff0c;它能够遍历并访问一个集合中的元素。在 JavaScript 中&#xff0c;迭代器提供了一种统一的方式来处理各种集合&#xff0c;如数组、字符串、Map、Set 等。通过迭代器&#xff0c;我们可…

Docker之技术架构【八大架构演进之路】

Docker之技术架构 1. 八大架构演进之路1.1 单机架构1.2 应用数据分离架构1.3 应用服务集群架构1.4 读写分离架构1.5 冷热分离架构1.6 垂直分库架构1.7 微服务架构1.8 容器编排架构&#xff08;docker出现&#xff09; 2. 一个互联网实战架构 本章意在让大家了解Docker出现的历史…

WPS中插入矩阵的方法

WPS中插入矩阵的方法&#xff1a; 1、先选择插入公式中的矩阵中的第二个括号矩阵 选中矩阵右键&#xff0c;点击插入 点击在此后插入列和在此后插入行&#xff0c;会得到3x3矩阵&#xff0c;如图 分别点击两次会得到4x4矩阵&#xff0c;如图&#xff0c;可以画出4x4矩阵

消防设施操作员考试题库及答案

一、判断题 41.防爆电气设备按其使用环境的不同分为两类:Ⅰ类为煤矿井下用电气设备&#xff0c;Ⅱ类为工厂用电气设备。&#xff08;&#xff09; 答案&#xff1a;正确 解析&#xff1a;根据《基础知识》第204页&#xff0c;结合题意&#xff0c;本题正确。 42.当火灾报警控…

虚幻引擎是什么?

Unreal Engine&#xff0c;是一款由Epic Games开发的游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计&#xff0c;但现在已经被成功地应用于开发模拟游戏、恐怖游戏、角色扮演游戏等多种不同类型的游戏。虚幻引擎除了被用于开发游戏&#xff0c;现在也用于电影的虚拟制片…