Redis与其他缓存框架的对比
近来在吸收新知识和复习以前所学,但一直没有好好梳理一下。为了将“内化”所学,也是时候做个总结了。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与其他缓存框架的对比相关推荐
- 三大缓存框架ehcache、memcache和redis的介绍
三大缓存框架ehcache.memcache和redis的介绍 2016-04-12 架构说 4964 阅读 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存 ...
- 三大缓存框架(Ehcache+Memcache+Redis)基础
1.Ehcache(纯Java的进程内缓存框架,也叫二级缓存) Ehcache是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案(在Java项目广泛的 使用).正因为 ...
- Redis的三个框架:Jedis,Redisson,Lettuce
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html redisson 官网地址: ...
- Redis学习、缓存、持久化、哨兵模式
个人博客欢迎访问 总结不易,如果对你有帮助,请点赞关注支持一下 微信搜索程序dunk,关注公众号,获取博客源码 我写代码是为了更好的表达自我,这是艺术创作,而不单单是为了把事情搞定. -Antirez ...
- java 开源缓存框架--转载
原文地址:http://www.open-open.com/13.htm JBossCache/TreeCache JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的改 ...
- 撑起12306网站,全靠这个世界第一的缓存框架!
提起业务量,除了京东618,淘宝双11,当数全民抢票平台 12306最有发言权. 后台有位粉丝问了个很典型的问题,同样是架设在阿里云上的服务器,为什么12306经常会宕机,而双11阿里每秒钟50多万笔 ...
- Spring整合Redis做数据缓存(Windows环境)
当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是 ...
- 精讲23种设计模式-基于装饰模式~设计多级缓存框架
文章目录 一.装饰模式 1. 回顾多级缓存基本概念 2. 装饰模式基本的概念 3. 装饰模式应用场景 4. 装饰者模式定义 5. 基于Map手写Jvm内置缓存 二.手写一级与二级缓存 2.1. red ...
- 一文玩转 EhCache 缓存框架!
Ehcache 介绍 EhCache 从 Hibernate 发展而来,是一个纯Java的进程内缓存框架,具有快速.精干等特点.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存, ...
最新文章
- 终于有人把Python讲清楚了!
- ADSL的PPPOE拨号客户端上的ppp authentication pap “callin”的正确理解
- 【原创】POSTGRESQL 分区表初次体验
- mysql字段掩码_在必须输入字母A~Z或数字0~9数据库中设计表时,如果将字段的输入掩码设置为“LLLL”,则该字段能够接受的输入是()_学小易找答案...
- 十大python开发软件-必看 | 2020年,Python十大应用领域介绍!
- [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总
- Springboot 请求数据
- ADO.NET Entity Framework Extensions 简单应用
- 你所忽略的,覆盖equals时需要注意的事项《effective java》
- 姑苏山塘飞雪披银装[组图]
- Unity实现鼠标点击指定位置导航角色
- 带圈圈的数字1~50,求50以上,不要word的
- 普歌-nuxt.js基础
- WSL环境下使用RV-LINK下载和调试GD32VF103程序视频教程
- 双硬盘安装双系统详解
- TLE 生成 Cesium CZML 卫星轨道数据
- Ubuntu-阿里云搭建Gitlub
- java获取指定周的第一天和最后一天(周统计报表)
- 电脑安装破解软件跟杀毒软件冲突怎么办
- 怀化学院1901班灭霸组项目设计博文
热门文章
- MATLAB应用实战系列(七十七)-【图像处理】COVID-19 防疫应用口罩检测
- 天池赛题解析:零基础入门语义分割-地表建筑物识别-CV语义分割实战(附部分代码)
- 数据挖掘之关联算法Apriori
- Python编程基础:第二十三节 嵌套函数调用Nested Functions Calls
- 【机器学习PAI实践九】如何通过机器学习实现云端实时心脏状况监测
- 阿里异地多活与同城双活的架构演进
- mybatis使用注解替代xml配置,动态生成Sql
- How does Spring @Transactional Really Work?--转
- How do annotations work internally--转
- Java Garbage Collection Basics--转载