技术文章

当前位置:首页>帮助手册>技术文章

o2server cache 实现

时间:2022-03-08   

o2server服务器自带三种cache实现 ehcache,guava,redis

7.0.0以前的版本默认使用ehcache,7.1.0以后的版本默认使用guava

ehcache

ehcache实现方式采用的是 Ehcache 组建.使用服务器内存作为缓存空间.

guava(推荐)

guava实现方式采用 Guava 实现,使用服务器内存作为缓存空间.

对比与ehcache,guava没有专门的线程进行缓存数据的淘汰,而是在查找时进行校验,所以占用线程较少.

redis

redis实现使用 Jedis 作为redis客户端,链接到redis服务器实现缓存.

由于redis服务器通过网络进行通讯,无法实现CompliedScript的缓存(原因是CompliedScript无法序列化),会忽略CompliedScript对象的缓存,改由本地直接编译,所以在使用脚本的情况下会影响速度.不建议在使用脚本的情况下采用.

三种缓存对比

类型

内存消耗

线程占用

速度

额外服务器

集群支持

编译脚本缓存

ehcache

不需要

支持

支持

guava

不需要

支持

支持

redis

需要

支持

不支持

配置

服务器默认已经实现了guava的缓存配置,可以通过config/cache.json文件进行修改配置.默认情况下config目录下无此文件,样例文件在configSample目录下.

{
  "type": "guava",
  "redis": {
    "host": "127.0.0.1",
    "port": 6379.0,
    "user": "",
    "password": "",
    "connectionTimeout": 3000.0,
    "socketTimeout": 3000.0,
    "sslEnable": false,
    "index": 0.0,
    "###host": "redis服务器地址###",
    "###port": "redis服务器端口###",
    "###user": "认证用户###",
    "###password": "认证口令###",
    "###connectionTimeout": "连接等待时间###",
    "###socketTimeout": "response返回等待时间###",
    "###sslEnable": "是否启用ssl###",
    "###index": "数据库编号###"
  },
  "ehcache": {
    "jmxEnable": false,
    "###jmxEnable": "是否启用jmx###"
  },
  "guava": {
    "maximumSize": 3000.0,
    "expireMinutes": 30.0,
    "###maximumSize": "缓存最大容量,默认值:3000.###",
    "###expireMinutes": "过期时间,默认值:30.###"
  },
  "###type": "缓存类型:ehcache,redis,guava###",
  "###redis": "redis配置###",
  "###ehcache": "ehcache配置###",
  "###guava": "guava配置###"
}

修改配置文件后需要重启生效.

上一篇:O2OA开发平台登陆页无法正常显示验证码解决办法

下一篇:开源OA-搭建完整OA系统全干货教程(16):SmartBI报表集成