缓存服务

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

缓存服务

# 1 简介 cache是提高系统性能的重要设施,越靠近用户的缓存命中,请求链越短,响应越快,效率越高,对后端系统压力越小。它对系统整体性能的提升有很大的帮助。 平台系统的缓存可以分为分布式缓存、本地缓存、应用缓存和页面缓存。 + **分布式缓存** 使用redis,独立进程部署,与本地应用隔离,多个节点共享缓存数据层查询结果集以减轻存储系统压力,或经过复杂计算得出的结果,缓存值可能被多次使用则需要缓存。 **优点**:集群共享,缓存系统独立部署,可线性扩容。 **淘汰策略**:过期淘汰,缓存键超过设定的时间则淘汰;溢出淘汰,当缓存量超过redis淘汰阀值,使用LRU将最近最少使用的缓存键淘汰(实际使用中配置为不淘汰)。 **更新策略**:当数据更新时,先更新数据库,然后删除缓存中对应的键值。 + **本地缓存** 使用ehcache,适合缓存数据字典及高频访问数据。 **优点**:和应用在同一进程,访问速度快 **缺点**:容量有限;集群多个节点不能共享 **淘汰策略**:过期淘汰,缓存键超过设定的时间未被访问则淘汰;溢出淘汰,当缓存量超过设定的最大值,使用LRU算法将最近最少使用的缓存键淘汰。 # 2 应用场景 能够通过添加缓存提升系统性能的各个场景都适用。 # 3 接口说明 缓存相关接口定义和实现存在于bos-cache-1.0.jar中。对于使用者来说只需要调用kd.bos.cache.CacheFactory的getCommonCacheFactory()获取工厂对象,然后调用工厂对象的方法获取合适的缓存对象(分布式缓存、本地缓存等),最后调用缓存对象接口方法即可。 ## 3.1 接口列表 ***CacheFactory*** | 静态方法 | 说明 | | - | - | | getCommonCacheFactory | 获取通用缓存工厂对象 | | getDistributeSessionlessCache | 获取分布式会话无关缓存对象 | | $getOrCreateLocalMemoryCache | 获取本地缓存对象 | ***LocalMemoryCache*** | 接口方法 | 说明 | | - | - | | put | 添加数据到缓存 | | get | 获取缓存数据 | | remove | 删除缓存数据 | | contains | 判断缓存数据是否存在 | | clear | 清除当前缓存 | | removeMapFields | 缓存数据为Map,删除Map中的数据 | ***DistributeSessionlessCache*** | 接口方法 | 说明 | | - | - | | addList | 添加列表类型缓存 | | insertList | 在列表类型缓存指定index中插入新数据 | | getList | 获取列表类型缓存 | | setListObject | 设置列表类型缓存指定index中列表元素值 | | getListObject | 获取数组列表缓存指定index中列表元素值 | | removeListObject | 删除数组列表缓存指定index中列表元素值 | | getListLength | 获取数组列表缓存数组的长度 | | addToSet | 添加集合类型缓存 | | removeSetValues | 删除集合类型缓存 | | getSetValues | 获取集合类型缓存 | | getSetLength | 获取集合类型缓存集合长度 | | put | 添加缓存 | | hset | 与Redis的hset类似 | | hmset | 与Redis的hmset类似 | | hmget | 与Redis的hmget类似 | | hget | 与Redis的hget类似 | | hgetAll | 与Redis的hgetAll类似 | ## 3.2 使用示例 通过CacheFactory组件提供的API获取缓存工厂, 创建缓存器。 1. **分布式缓存** ```java DistributeSessionlessCache cache = CacheFactory.getCommonCacheFactory().getDistributeSessionlessCache("customRegion"); cache.put("demo",value);//将自定义参数加入缓存 cache.get("demo");//获取自定义缓存 ``` customRegion 为自定义缓存区域,在部署层面,可以将不同region区域配置为不同的redis,部署方式为设置redis.serversForCache.customRegion=reids地址。如果不配置则使用公共的缓存配置。 2. **本地缓存** ```java //本地缓存 CacheConfigInfo localConfig = new CacheConfigInfo(); localConfig.setMaxItemSize(5000); localConfig.setTimeout(600); LocalMemoryCache localcache = CacheFactory.getCommonCacheFactory().getOrCreateLocalMemoryCache("fi_region", "basedata", localConfig); ``` MaxItemSize:最大元素个数。timeout:超时时间秒,一个cache中所有元素的超时时间相同,不能单独设定。

缓存服务

# 1 简介cache是提高系统性能的重要设施,越靠近用户的缓存命中,请求链越短,响应越快,效率越高,对后端系统压力越小。它对系统整体性...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息