分布式缓存中间件优缺点分析(redis、memcache、ehcache)

            分布式缓存中间件优缺点分析(redis、memcache、ehcache)

  1. redis

  优点:

     1. 丰富的数据结构,支持字符串(strings)、散列(hashes)、列表(lists)、集合

(sets)、有序集合(sorted sets)

     2. 主从同步,故障转移 集群

     3. 持久化

    缺点:

     1. 单核,单线程,所以在存储海量数据的时候会极大的影响系统性能

  2. memcache

      优点:

     1. 简单的key-value存储,memcache的key-value只支持String字符串类型的存储。

     2. 良好的内存使用率,因为它采用的是多核多线程的处理处理方式。

    缺点:

     1. 无法容灾,数据无法做到持久化,当计算机节点发生某个故障宕机之后数据是不能进

      行恢复的。

  3. ehcache

    优点:

     1. 基于Java开发,更易于整合Java项目,有良好的健壮性同时还是被Apache所认可的。

     2. 基于JVM缓存,若在JVM中使用ehcache缓存的话,它有良好的性能,更快的执行速度

      使用起来就很简单、方便、轻巧。像Mybatis、Hibernate这些开源框架都使用ehcache

    缺点:

     1. 集群、分布式模式下不支持缓存共享,若要实现集群的缓存的话会非常复杂,很不方便。

      还会涉及到缓存的恢复等等这些问题。所以,ehcache还是更利于做单体应用的分布式

      缓存。

     

原文地址:https://www.cnblogs.com/jhtian/p/12618522.html

时间: 2024-08-03 17:51:27

分布式缓存中间件优缺点分析(redis、memcache、ehcache)的相关文章

最全的互联网分布式缓存技术视频教程(redis、memcached、ssdb)

跟着真正的互联网 架构师,学习互联网架构师方向开发!可能你还为工作不好.薪资待遇不高感到烦恼,可能你还在纠结自己的技术水平不够找不到高大上的工作而烦恼,那么在这里我们推出互联网 架构师课程学习体系面向所有想要学习高端技术,并且以后想要从事互联网行业 开发的“同学”,真正做到在公司中实际使用,解决公司中实际问题,让你一步进入高大上的集体,感受上边的空气. 课程目录 01_.互联网架构师课程简介    02_互联网并发编程介绍    03_互联网并发编程介绍    04_java虚拟机调优课程介绍 

中间件(1)分布式缓存

为了提高网站性能,一般都会使用到缓存,缓存的数据源包括数据库,外部接口等,缓存一般分为两种,本地缓存和分布式缓存,这里主要总结的是分布式缓存. Memcached和Redis 最常用的分布式缓存是Redis和Memcached,它们都是分布式缓存技术中的一种,可能大部分的开发人员都听说或者接触过,但是很少有人认真分析它们之间有什么不同,以及使用场景. Memcached是 我们从以下几个方面对它们进行比较. 网络IO模型 Memcached是多线程处理. Redis是单线程处理. 内存管理机制

Java-No.13 基于redis分布式缓存实现

1.redis实现分布式缓存 package com.shma.redis; import java.util.List; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPoo

如何用分布式缓存服务实现Redis内存优化

Redis是一种支持Key-Value等多种数据结构的存储系统,其数据特性是"ALL IN MEMORY",因此优化内存十分重要.在对Redis进行内存优化时,先要掌握Redis内存存储的特性比如字符串,压缩编码,整数集合等,再根据数据规模和所用命令需求去调整,从而达到空间和效率的最佳平衡. 但随着数据大幅增长,开发人员需要面对重新优化内存所带来开发和数据迁移的双重成本也越来越高.Redis所有的数据都在内存中,那么,我们是否可以通过简便高效的方式去实现Redis内存优化呢? 答案当然

分布式缓存:爱我你怕了吗?

背景 俗话说得好,工欲善其事,必先利其器,有了好的工具肯定得知道如何用好这些工具,本篇将介绍如何利用好缓存. 1.确认是否需要缓存 在使用缓存之前,需要确认你的项目是否真的需要缓存.使用缓存会引入的一定的技术复杂度,后文也将会一一介绍这些复杂度.一般来说从两个方面来个是否需要使用缓存: CPU占用:如果你有某些应用需要消耗大量的cpu去计算,比如正则表达式,如果你使用正则表达式比较频繁,而其又占用了很多CPU的话,那你就应该使用缓存将正则表达式的结果给缓存下来. 数据库IO占用:如果你发现你的数

分布式缓存Memcache和Redis

引言 针对于现在计算机的CPU和网络设施,对应用程序来说,执行效率的瓶颈,已经不是代码的长度(实现同一个功能)和带宽了,而是,代码访问资源的过程,即:让我们的程序慢下来的罪魁祸首就是IO操作. 程序从硬盘上读取数据是一个非常花费时间的操作,因为我们现在所使用的硬盘是机械式的,你想机械的运行速度和电的速度,那是一个级别上的选手吗? 为了解决程序的瓶颈,人们提出了一种想法:使用空间换取时间.程序访问硬盘用的时间长,那就让数据放到内存中,让程序访问内存,这样不就节省了时间.这样确实剩下了我们程序获取数

基于redis分布式缓存实现

第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题: 水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在

memcache 分布式缓存

转载地址:http://www.cnblogs.com/phpstudy2015-6/p/6713164.html 作者:那一叶随风 1.memcached分布式简介 memcached虽然称为"分布式"缓存服务器,但服务器端并没有"分布式"功能.Memcache集群主机不能够相互通信传输数据,它的"分布式"是基于客户端的程序逻辑算法进一步实现的. 请看下面简图: 根据上图我们简述分析分布式memcached的set与get的过程 set过程:

基于redis分布式缓存实现(新浪微博案例)

第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有, 影响开发效率 性能需求, 随着读操作的量的上升需要解决,经历的过程有: 数据库读写分离(M/S)–>数据库使用多个Slave–>增加Cache (memcache)–>转到Redis 解决写的问题: 水平拆分,对表的拆分,将有的用户放在这个表,有的用户放在