近来在吸收新知识和复习以前所学,但一直没有好好梳理一下。为了将“内化”所学,也是时候做个总结了。Redis和Memcache是当前缓存层讨论的最多解决方案。我们需要根据实际的使用场景来决定选择哪个。

Redis和Memcache本质上都是基于k/v实现的缓存,但是Memcache正如其名,依赖于内存,不支持数据的持久化,服务器关闭后数据丢失。而Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,可以通过RDB快照或者AOF日志将数据持久化到磁盘,支持master-slave机制的数据备份;

在存储小于100k的数据,Redis具有性能上的优势,而数据量大于100k,Memcache性能更好;

Redis只支持单线程请求,一个Redis进程只使用单核,所有命令串行执行,并发情况下不需要考虑数据一致性。但是可以通过多个Redis进程使用多核。而Memcache可以充分发挥多核优势,单实例吞吐量极高,可以达到几十万QPS;

在内存利用率上Memcache更高,但如果Redis使用hash结构做k/v存储,由于其组合式的压缩,内存利用率会高于Memcache;

支持数据类型上,Memcache只支持k/v类型的数据,而Redis还支持list,set,zset,hash等数据结构,并且Redis支持服务器端的数据操作,而Memcache需要将数据拿到客户端进行修改再set回去,大大增加了网络IO和数据的体积,如果需要缓存能进行更复杂的数据结构和操作,那么Redis更适合。

Redis与其他缓存框架的对比相关推荐

  1. 三大缓存框架ehcache、memcache和redis的介绍

    三大缓存框架ehcache.memcache和redis的介绍 2016-04-12 架构说 4964 阅读 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存 ...

  2. 三大缓存框架(Ehcache+Memcache+Redis)基础

    1.Ehcache(纯Java的进程内缓存框架,也叫二级缓存) Ehcache是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案(在Java项目广泛的 使用).正因为 ...

  3. Redis的三个框架:Jedis,Redisson,Lettuce

    Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html redisson 官网地址: ...

  4. Redis学习、缓存、持久化、哨兵模式

    个人博客欢迎访问 总结不易,如果对你有帮助,请点赞关注支持一下 微信搜索程序dunk,关注公众号,获取博客源码 我写代码是为了更好的表达自我,这是艺术创作,而不单单是为了把事情搞定. -Antirez ...

  5. java 开源缓存框架--转载

    原文地址:http://www.open-open.com/13.htm JBossCache/TreeCache  JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改 ...

  6. 撑起12306网站,全靠这个世界第一的缓存框架!

    提起业务量,除了京东618,淘宝双11,当数全民抢票平台 12306最有发言权. 后台有位粉丝问了个很典型的问题,同样是架设在阿里云上的服务器,为什么12306经常会宕机,而双11阿里每秒钟50多万笔 ...

  7. Spring整合Redis做数据缓存(Windows环境)

    当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是 ...

  8. 精讲23种设计模式-基于装饰模式~设计多级缓存框架

    文章目录 一.装饰模式 1. 回顾多级缓存基本概念 2. 装饰模式基本的概念 3. 装饰模式应用场景 4. 装饰者模式定义 5. 基于Map手写Jvm内置缓存 二.手写一级与二级缓存 2.1. red ...

  9. 一文玩转 EhCache 缓存框架!

    Ehcache 介绍 EhCache 从 Hibernate 发展而来,是一个纯Java的进程内缓存框架,具有快速.精干等特点.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存, ...

最新文章

  1. 终于有人把Python讲清楚了!
  2. ADSL的PPPOE拨号客户端上的ppp authentication pap “callin”的正确理解
  3. 【原创】POSTGRESQL 分区表初次体验
  4. mysql字段掩码_在必须输入字母A~Z或数字0~9数据库中设计表时,如果将字段的输入掩码设置为“LLLL”,则该字段能够接受的输入是()_学小易找答案...
  5. 十大python开发软件-必看 | 2020年,Python十大应用领域介绍!
  6. [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总
  7. Springboot 请求数据
  8. ADO.NET Entity Framework Extensions 简单应用
  9. 你所忽略的,覆盖equals时需要注意的事项《effective java》
  10. 姑苏山塘飞雪披银装[组图]
  11. Unity实现鼠标点击指定位置导航角色
  12. 带圈圈的数字1~50,求50以上,不要word的
  13. 普歌-nuxt.js基础
  14. WSL环境下使用RV-LINK下载和调试GD32VF103程序视频教程
  15. 双硬盘安装双系统详解
  16. TLE 生成 Cesium CZML 卫星轨道数据
  17. Ubuntu-阿里云搭建Gitlub
  18. java获取指定周的第一天和最后一天(周统计报表)
  19. 电脑安装破解软件跟杀毒软件冲突怎么办
  20. 怀化学院1901班灭霸组项目设计博文

热门文章

  1. MATLAB应用实战系列(七十七)-【图像处理】COVID-19 防疫应用口罩检测
  2. 天池赛题解析:零基础入门语义分割-地表建筑物识别-CV语义分割实战(附部分代码)
  3. 数据挖掘之关联算法Apriori
  4. Python编程基础:第二十三节 嵌套函数调用Nested Functions Calls
  5. 【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
  6. 阿里异地多活与同城双活的架构演进
  7. mybatis使用注解替代xml配置,动态生成Sql
  8. How does Spring @Transactional Really Work?--转
  9. How do annotations work internally--转
  10. Java Garbage Collection Basics--转载