热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RedisVsMemcached

因为我们项目上没有使用过两种,而我依旧对他们孰优孰劣比较好奇。所以我逛了很多国内外的网站,得到了以下的结论。首先,Redis和Memcached是两款非常给力的、快速的、并且都是使

因为我们项目上没有使用过两种,而我依旧对他们孰优孰劣比较好奇。

所以我逛了很多国内外的网站,得到了以下的结论。

首先,Redis和Memcached是两款非常给力的、快速的、并且都是使用内存做分布式缓存数据的服务。对于提升我们网站的的性能有很大的帮助(通过缓存数据、HTML片段或其他)。

接下来,通过几点来进行对比:

读写速度

  • 都非常快。总体上显示,redis的速度与memcached几乎一样快。

内存的使用

  • memcached:设置缓存空间大小,但当插入项时,守护进程就会自动增加空间大小。没有真正的方法来回收这些空间。所有的键都可能过期,可以刷新数据库,它仍然会使用配置的全部RAM。
  • redis:Redis永远不会使用超出我们设置的空间大小。并且它会智能返回不需要的空间,例如:我将100,000个2KB的字符串(200MB)存储在这两个字符串中。Memcached RAM的使用增加到225MB。Redis RAM的使用增加到228MB。在刷新了这两个数据之后,redis删除了29MB,而memcached则保持在225MB。
  • 磁盘I/O:对于redis来说,这是一个明显的优势,因为它在缺省情况下是这样做的,并且具有可配置的持久性。在没有第三方工具的情况下,Memcached没有向磁盘转储的机制。

memcached

  • Memcached是一个简单易变的高速缓存服务器。它允许您将键/值对存储在一个值限制为1MB的字符串中。
  • 我们可以快速的访问这些值,这个速度指的是网络或内存带宽的饱和。
  • 当您重新启动memcached时,数据就会消失。这对于缓存来说是很好的。我们不应该把重要的东西储存在那里。

redis

  • Redis可以像memcached一样完成相同的工作,而且可以做得更好。
  • Redis也可以充当缓存。它也可以存储键/值对。redis,可以达到512MB
  • 可以关闭持久性,并且在重新启动时也会丢失数据。
  • 它的速度也非常快,经常受到网络或内存带宽的限制。
  • Redis有集群支持,并带有高可用性的工具(redis-sentinel)。在过去的几年中,redis也成为了第三方工具的领导者。Redis Labs、亚马逊等公司提供了许多有用的Redis工具和服务。围绕redis的生态系统要大得多。大规模部署的数量现在可能比memcached更大。

 

Redis不仅仅是一个缓存。它是一个内存中的数据结构服务器。

Redis的文档比memcached更完善

容灾

  • 在快照模式中,突然崩溃可能导致少量丢失的数据。如果您绝对需要确保没有数据丢失,不要担心,redis也有AOF (Append Only File) 模式。

支持更多的数据类型

  • Memcached仅限于字符串,但Redis作为一个数据结构服务器,可以提供多种不同的数据类型。它还提供了所需的命令,以充分利用这些数据类型。例如:Strings、Hashes、Lists、Sets等等(查看数据类型官方文档)

事物性和原子性

  • redis中的命令是原子性的,这意味当向redis写入一个值时,所有连接到redis的客户端都可以看到该值。
  • 从技术上讲,memcached也是原子性的。

流水线

  • Redis提供了一个名为“流水线”的特性。如果有许多想要执行的redis命令,可以使用管道将它们发送到redis,而不是一次一次。
  • 通常,当对redis或memcached执行命令时,每个命令都是一个单独的请求/响应周期。通过使用管道,redis可以缓冲多个命令,并一次性执行所有命令,响应所有命令。

总结

memcached,它是一个强大的、简单的、稳定的、成熟的工具。甚至还有一些情况,它比redis快一些。

如果您已经在使用memcached缓存,如果它满足您的需要,那么就继续使用它。如果是新的项目,我推荐您使用redis。

 


推荐阅读
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 大厂首发!思源笔记docker
    JVMRedisJVM面试内存模型以及分区,需要详细到每个区放什么?GC的两种判定方法GC的三种收集方法:标记清除、标记整理、复制算法的 ... [详细]
  • 电信网为不能访问联通服务器的网站_老板说网站慢,我们总结了三大阶段提升性能...
    作者:李平来源:https:www.cnblogs.comleefreemanp3998757.html前言在前一篇随笔《大型网站系统架构的演化》中&# ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 玩转直播系列之消息模块演进(3)
    一、背景即时消息(IM)系统是直播系统重要的组成部分,一个稳定的,有容错的,灵活的,支持高并发的消息模块是影响直播系统用户体验的重要因素。IM长连接服务在直播系统有发挥着举足轻重的 ... [详细]
  • 缓存 分布式锁 Redis
    分布式锁现在Redis基本上没家公司都在使用,只是各自使用的场景不以,但Redis最出名的还是做为缓存服务器,提搞服务器的的吞吐量,下面我们来围绕这个作为缓存做一个总结今天的目标其 ... [详细]
author-avatar
shi6321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有