我们希望使用 Ehcache 缓存不应该存储到磁盘的敏感数据(数据只能驻留在主内存中)。这种数据存储在磁盘上是非法的,因此需要谨慎对待。
我们已经在使用 Ehcache(无论是否带有陶土)来实现常见的缓存目的。
我知道 Ehcache 提供了在主内存和磁盘上缓存的选项,此外它还允许在使用主内存时溢出到磁盘。
我是 Ehcache 的新手,想知道如何配置 Ehcache 以保证这个特定的缓存永远不会接触磁盘。 (我们目前主要使用默认配置)此外,一旦我们运行实现,最好有一种方法来确认数据存储在哪里(以确认没有数据未存储在磁盘上)。
据我所知,必须明确启用磁盘持久性。查看文档here http://ehcache.org/documentation/2.8/configuration/fast-restart。如果您还没有添加此类配置,我怀疑默认情况下会将内容存储到磁盘。检查您的 ehcache 配置,您是否看到与持久性或相关的任何内容CacheWriter
附件到你的缓存?
我想说的是,一旦你的服务运行起来,你可以通过JMX获取缓存配置来检查是否有磁盘持久化,如果有,它持久化在哪里。您可以通过这种方式启用 JMX,并可以自行检查:
CacheManager cm = net.sf.ehcache.CacheManager.getInstance();
MBeanServer mbs = java.lang.management.ManagementFactory.getPlatformMBeanServer();
net.sf.ehcache.management.ManagementService.registerMBeans(cm, mbs, true, true, true, true, true);
例如,bean net.sf.cache/CacheConfiguration/CacheManager/cache/DiskPercient 会告诉您是否启用了磁盘持久性。然而,持久化可以通过CacheWriter
以及。要找出这一点,您不能使用 JConsole,但必须以编程方式附加到 MBeanServer 并获取属性 net.sf.ehcache/Cache/CacheManager/cache/CacheConfiguration。这将返回一个net.sf.ehcache.management.CacheConfiguration
实例应该告诉您有关已注册的 CacheWriter 的信息,以及它正在使用的配置。 (我自己还没有尝试过。)
此外,如果数据机密性对您来说非常重要,那么您还应该考虑加密您的数据(在缓存中和通过网络)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)