9、play中缓存的使用

1、简介

对于存储在缓存中的任何数据,都需要放置一个再生策略,以防数据丢失。这一理念是play基本原则之一。对于进程内缓存,Caffeine 通常是最佳选择。如果需要分布式缓存,play提供了Memcached和Redis的第三方插件。

2、添加缓存插件

添加Caffeine缓存的依赖项:

libraryDependencies ++= Seq(

  caffeine

)

添加ehcache的依赖项:

libraryDependencies ++= Seq(

  ehcache

)

仅添加cache api的依赖项:

libraryDependencies ++= Seq(

  cacheApi

)

3、访问缓存层

缓存API由AsyncCacheAPI和SyncCacheAPI接口定义,具体取决于是希望异步实现还是同步实现

4、访问不同的缓存

要访问不同的缓存,在注入它们时,请根据依赖项使用@NamedCahce进行限定,例如:

如果想访问多个不同的缓存,那么需要在application.conf中绑定:play.cache.bindCaches = ["db-cache", "user-cache", "session-cache"]

5、设置缓存的执行方式

默认情况下,所有Caffeine 和ehcache操作都是阻塞的,异步实现将阻塞当前线程。通常情况下,如果您使用的是play的默认配置,它只将元素存储在内存中,因为读取速度相对较快。但是,根据缓存的配置方式,这种阻塞I/O可能代价太高。对于这种情况,可以配置不同的AKKA Dispatcher,并通过play.cache.Dispatcher设置它,以便缓存插件使用它,配置方式如下:

6、自定义实现缓存

思路就是先将默认依赖的缓存进行注销,然后注入自定义的缓存

在application.conf文件中配置:

play.modules.enabled += "czp.api.SelfCacheModule"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值