cache 的应用

1. 情境:

在用户注册时,需要注册的信息较多,如需要身份信息,住址信息,附件信息,branch信息,账户,offical,等等多达十几种信息。

如果页面的每次修改都需要到数据库查询的话,会很慢。

所以将这些信息保存在session中。但是信息较多,需要好的办法来实现。

2.分析:

不同的用户会有不同的ID,不同的请求类型,不同的操作类型等。

将这些经过处理作为主键信息,即可实现将该用户的信息infoMap保存在session给中。

然后再在改用户的infoMap中,利用分支信息的cacheKey取得相应的分支信息VO,如身份信息VO,附件信息VO等等。

层次结构如下:


session:
userA_info_map:
分支信息VO
身份信息VO
附件信息VO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LoadingCache是Guava库中的一个缓存工具类,用于高效地缓存数据。在多线程应用中,LoadingCache可以提供良好的并发支持。 首先,LoadingCache的内部实现是线程安全的。它使用了并发集合ConcurrentMap作为缓存的存储结构,并使用了同步机制来保证多线程并发的正确性。因此,在多线程环境下,不需要额外的加锁操作,不需要开发人员手动处理并发访问问题,而是由LoadingCache自身来处理。 其次,LoadingCache提供了get和getAll方法来获取缓存中的数据。在多线程应用中,当多个线程同时调用get方法来获取缓存中的数据时,LoadingCache可以保证只有一个线程去加载数据,其他线程会等待加载完成后直接从缓存中获取数据,避免了重复的数据加载操作。 另外,LoadingCache还提供了refresh方法,用于定时刷新缓存中的数据。在多线程应用中,可以通过设置定时任务或者使用定时调度框架,定期调用refresh方法来刷新缓存中的数据。这样可以保证在多线程并发操作下,缓存的数据始终是最新的。 需要注意的是,在多线程应用中,如果缓存的数据更新频繁,而且有多个线程在同时操作缓存,可能会导致缓存的命中率下降。这时可以考虑使用更加高级的缓存方案,如分布式缓存,来进一步提升缓存的并发性能和命中率。 综上所述,LoadingCache在多线程应用中可以提供良好的并发支持。它的线程安全的内部实现、合理的并发控制机制,以及定时刷新的功能,使得在多线程并发访问下,能够高效地缓存和获取数据,并保证数据的一致性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值