dubbo如何做cache缓存

duubo如何使用cache的?
CacheFilterclass里面有,这个filter既可以在provider也可以在consumer
if (cacheFactory != null && ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.CACHE_KEY))) {
可见只要对方法url加了cache标志,就会使用cache,通过cacheFactory得到几个cache,重点说下lru的cache

lru-cache继承自LinkedHashMap,由于这个map没有线程安全,所以所有操作都加了排他锁。
既然是cache,为了更快读取到数据,肯定用hashmap,但是hashmap无法做到lru,为了解决这个问题,就用到了LinkedHashMap,这个map跟hashmap不同的地方就在于,链表部分是双向的,因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部(有头尾指针)来保证插入的顺序,从而达到lru的作用。

原文地址:https://www.cnblogs.com/notlate/p/10124850.html

时间: 2024-08-02 19:11:47

dubbo如何做cache缓存的相关文章

Nginx/tengine做cache时缓存机制—存不存、存多久、用不用方法论(图自画)

Nginx/tengine(后面名称只写nginx了)单纯做cache性能比不过ats,特别是在磁盘处理方面,不过论综合能力nginx就是大拿了,他集web服务器.负载均衡.cache三种能力于一身,可以说是非常综合性的选手.比如说一个中型网站的场景选型,前端是负载,后端托着一堆apache服务器,现在该到前端负载选型的了,虽然lvs和ha单纯从负载的性能要比nginx好一些,但我还是会选nginx,因为nginx在做负载的同时,可以将热点的静态内容cache一遍,做一次加速,无形间减轻了后端w

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

当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是用java开发的缓存组件,和java结合良好,直接在jvm虚拟机中运行,不需要额外安装什么东西,效率也很高:但是由于和java结合的太紧密了,导致缓存共享麻烦,分布式集群应用不方便,所以比较适合单个部署的应用. Redis需要额外单独安装,是通过socket访问到缓存服务,效率比Ehcache低,但

注释驱动的 Spring cache 缓存介绍--转载

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存

django cache 缓存系统

django 缓存系统 https://docs.djangoproject.com/en/dev/topics/cache/#the-low-level-cache-api http://www.ziqiangxuetang.com/django/django-cache.html 可以缓存能被pickle的对象 安装 pip install hiredis django-redis-cache setting中配置 #KEY_PREFIX  设置缓存键值的前缀 CACHES = { 'mys

Dubbo之旅--结果缓存

在上篇文章中我们队Dubbo的扩展进行了一些基本了解.这些扩展能够很好的帮助我们在实际的项目中发挥作用,接下来对于dubbo的一些高级特征,针对特殊情况而进行的处理进行进一步的介绍,这里我们要说的是结果缓存. 为什么要用到结果缓存,主要是用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用户加缓存的工作量. 下面我们将通过一个例子来对结果缓存进行一个接触. 1.客户端和服务提供端共用接口类 packagecom.alibaba.dubbo.demo; public interfaceC

注释驱动的 Spring cache 缓存介绍

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存

[转]注释驱动的 Spring cache 缓存介绍

原文:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ 概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能

Android 获取cache缓存的目录路径

转发请备注原文地址:https://www.niwoxuexi.com/blog/android00/article/224.html Android开发中,有时需要知道cache缓存的路径.我写了一个静态类,供大家能参考 public class  CommonUtil {        /**     * 获取cache路径     *     * @param context     * @return     */    public static String getDiskCache

spring boot guava cache 缓存学习

http://blog.csdn.net/hy245120020/article/details/78065676 ************************************************************ spring boot guava cache 缓存学习 自定义key 自定义全局key过期时间,缓存个数 针对单个key自定义过期时间,缓存个数 引入依赖 <dependency> <groupId>org.springframework.boo