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配置###"
}修改配置文件后需要重启生效.

浙公网安备 33010602009829号