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)是一个确保并发一致性的机制,属
于“乐观锁”范畴;原理很简单:拿版本号,操作,对比版本号,如果一致就操
作,不一致就放弃任何操作
cpu 利用。由于 Redis 只使用单核,而 Memcached 可以使用多核,所以平均每
一个核上 Redis 在存储小数据时比 Memcached 性能更 高。而在 100k 以上的数
据中,Memcached 性能要高于 Redis 。
7、memcache 内存管理:使用 Slab Allocation。原理相当简单,预先分配一系
列大小固定的组,然后根据数据大小选择最合适的块存储。避免了内存碎片。(缺
点:不能变长,浪费了一定空间)memcached 默认情况下下一个 slab 的最大值
为前一个的 1.25 倍。
8、redis 内存管理: Redis 通过定义一个数组来记录所有的内存分配情况, Redis
采用的是包装的 malloc/free,相较于 Memcached 的内存 管理方法来说,要简
单很多。由于 malloc 首先以链表的方式搜索已管理的内存中可用的空间分配,导
致内存碎片比较多
memcached 与 redis 的区别?的更多相关文章
- Django缓存系统选择之Memcached与Redis的区别与性能对比
Django支持使用Memcached和Redis这两种流行的内存型数据库作为缓存系统.我们今天来看Memcached和Redis的区别和性能对比. redis和memcached的区别 1.Redi ...
- memcached 与 redis 的区别和具体应用场景
1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器.其本质上就是一个 ...
- memcached和redis的区别
memcache和redis区别 memcach简介 Memcache时一个内存对象缓存系统,用于加速动态web应用程序,减轻数据库负载.它可以应对任意多个连接,使用非阻塞的网络I/O, 工作机制: ...
- memcached和redis的区别和应用场景
一:特性和对比 1.性能上: 性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比 Memcached性能更高 ...
- Memcached与Redis对比,Redis基础笔记回顾
Memcached 1.为什么要把数据存入内存?快 2.Memcached和Redis的区别 (1)Memcached缓存.Redis数据库,Memcached不支持持久化到磁盘 (2)Redis提供 ...
- NOSQL学习之一:Memcached, Redis, MongoDB区别
Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. MongoDB是一个基于分布 ...
- redis和memcached的优缺点及区别
1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...
- Redis和Memcached到底有什么区别?
前言 我们都知道,Redis和Memcached都是内存数据库,它们的访问速度非常之快.但我们在开发过程中,这两个内存数据库,我们到底要如何选择呢?它们的优劣都有哪些?为什么现在看Redis要比Mem ...
- Memcached、Redis和MongoDB的区别
Memcached和Redis都是内存数据库. Memcached是多线程运行的: Redis单线程是单线程运行的: MongoDB是文档型的非关系型数据库..Net:RavenDB.
随机推荐
- Meterpreter核心命令
实验目的 掌握Meterpreter常见的基本命令的使用 实验原理 1.Meterpreter介绍 meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻 ...
- C# 事件Event(个人整理)
内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上) https://www.youtube ...
- Map<String, String> map按key值排序
private static String buildMd5Params(Map<String, String> map) { StringBuilder result = new Str ...
- 如何在shell脚本里使用sftp批量传送文件(二)
原文链接:http://bbs.chinaunix.net/archiver/tid-508290.html 主要步骤如下: 1.为运行shell脚本的本地用户生成密钥对2.将其中的公钥分发到sftp ...
- shell中echo基础及高级用法详解-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年2月19日 1.1 基础用法 echo命令用来输出文本,在shell脚本中用来输出提示信息用的比较多. 单引号:原样输出所有的内容,不用转义就能输出特殊 ...
- Java 实现Https访问工具类 跳过ssl证书验证
不多BB ,代码直接粘贴可用 import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.F ...
- DBUtils ResultSetHandeler常用的处理类
常用的处理类: BeanHandler: //将结果集中第一条记录封装到一个指定的javaBean中 BeanListHandler: //将结果集中每一条记录封装到指定的javaBean中,将这些j ...
- ArcGIs创建企业级数据库
本文主要描述ArcGIs创建企业级数据库. 目标:创建企业级地理数据库,使用ArcMap通过SDE引擎 与Oracle交互数据,创建完成后将本地的mdb数据库中数据迁移到Oracle的地理数据库当中. ...
- JavaWeb 10_Filter过滤器
一.什么是Filter? 1.Filter 过滤器它是JavaWeb的三大组件之一-.三大组件分别是: Servlet 程序.Listener 监听器.Filter 过滤器2.Filter 过滤器它是 ...
- Linux 显示文件大小的命令
ll显示的是字节,可以使用-h参数来提高文件大小的可读性,另外ll不是命令,是ls -l的别名ls -al 是以字节单位显示文件或者文件夹大小: 字节b,千字节kb, 1G=1024M=1024*10 ...