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"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10、使用ws调用Rest api

目录 1、简介 2、添加WS配置 3、发送请求 4、处理请求 5、常用模式和用例 6、自定义BodyReadables和BodyWritables 6、独立WS 7、访问AsyncHttpClient 8、配置WS 1、简介 有时我们想从一个play应用程序中调用其他HTTP服务。Play提供了WS库来进行异步HTTP方法调用。 …

拥抱开源,Office 365 开发迎来新时代

前言作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日。自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软件巨头都纷纷支持,在广大…

11、OAuth和OpenID服务

1、OAuth 1、1 简介 OAuth是发布受保护数据并与之交互的简单方法。对于人们来说,这也是一种更安全的访问方式。例如,它可以用来访问你的用户在Twitter上的数据。Play仅提供对OAuth 1.0的支持。 1、2 基本工作原理 在build.sbt中添加配置:…

求凸函数极值 CSF迭代法(雾)

简介 本算法用来求解凸函数极值点的问题,由我在写ACM习题时想到,在网上并未找到这样的算法,拿出来给大家分享一下,如果网上没有的话,我决定给它起名叫做 CSF迭代法,如果这个算法早已经存在,那就…

12、play整合Akka

1、简介 Akka使用actor模型来提高抽象级别,并提供一个更好的平台来构建正确的并发和可扩展的应用程序。在容错方面,它采用了“Let it crash”的模式,这种模式在电信行业获得了巨大成功,用于构建永不停止的自我修复系统应用程序。…

ASP.NET Core 添加统一模型验证处理机制

一.前言模型验证自ASP.NET MVC便有提供,我们可以在Model(DTO)的属性上加上数据注解(Data Annotations)特性,在进入Action之前便会根据数据注解,来验证输入的数据是否合法,下面介绍以下如何统一处理验证并返…

13、play中实现信息国际化

目录 1、指定应用使用的语言 2、语言配置文件 3、在Controller中使用 4、在模板中使用 5、改变当前请求的语言 6、格式化信息 1、指定应用使用的语言 在conf/application.conf中进行配置: 这些语言标记将用于创建play.i18n.Lang实例。要访问应用程序支持的语…

讨论过后而引发对EF 6.x和EF Core查询缓存的思考

前言最近将RabbitMQ正式封装引入到.NET Core 2.0项目当中,之前从未接触过这个高大上的东东跟着老大学习中,其中收获不少,本打算再看看RabbitMQ有时间写写,回来后和何镇汐大哥探讨了一点关于EF和EF Core的内容,于是乎本…

CF297E-Mystic Carvings【树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/CF297E 题目大意 2∗n2*n2∗n个点的圆,nnn条圆上不交的弦,选择三条使得每条弦对应的弧上的点数量相等。 解题思路 就这5种情况,其中满足条件的是222和555,我们用容斥去掉1,3,41,…

14、使用play搭建一个web应用用例

目录 1、play下载 2、启动play项目 3、将项目导入到eclipse 4、play项目中前端开发 5、添加bootstrap ace页面模板 1、play下载 找到官网,直接下载即可 2、启动play项目 解压文件,进入到项目顶级目录 等一会,下载jar包,第一…

EF Core 2.0使用MsSql/Mysql实现DB First和Code First

环境Visual Studio 2017 最新版本的.NET Core 2.0 SDK最新版本的 Windows PowerShell开始搭建1、在 Visual Studio 2017 中创建新项目“文件”>“新建”>“项目”从左侧菜单中选择“已安装”>“模板”>“Visual C#”>“.NET Core”。选择“ASP.NET Core Web 应用…

基于SSM+JBPM的智能化OA办公平台

目录 1、项目介绍 2、业务架构和技术架构 3、数据模型 4、界面展示 写在前面:如果有小伙伴儿想获取智能化OA办公平台管理系统的对应源码和数据表结构,可以关注博主然后给博主发私信哟。 1、项目介绍 本项目是一款智能化OA办公平台,其目的…

森近林之助【字符串处理】

森近林之助森近林之助森近林之助 题目大意 输入n个字符串,每一位总共要出现两个“1”,一个“0”,求最少要加多少个字符串才能满足条件 解题思路: 这题就是将每一位出现“1”和“0”的次数加在一起,看每一位缺多少个…

EFCore2.0@Xamarin.Forms

由于忙于Xamarin的书的创作很久没有和大家见面了,回到博客我会陆续更新一些最新的Xamarin技术,还有最近一直在努力的人工智能相关知识。话说csdn的博客改版了。总觉得变化是好事情啊。 这篇博客,我想和大家说说EFCore,在.NET…

花生采摘

花生采摘花生采摘花生采摘 题目描述 鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。 鲁宾逊先生和多多都很…

2、mybatis的基本使用

对于初学者,如果进行mybatis的学习呢?我总结了几点,会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点;当知道了为什么的时候就开始了解如何用的问题,如何使用my…

codeforces 884F 费用流,图解很清晰

代码&#xff1a; #include<bits/stdc.h> using namespace std; const int inf 1e9; const int mm 111111; const int maxn 2999; int node,src,dest,edge; int ver[mm],flow[mm],cst[mm],nxt[mm]; int head[maxn],work[maxn],dis[maxn],q[maxn]; int tot_cost; void …

发现 ASP.NET Core SignalR

ASP.NET SignalR 是几年前推出的工具&#xff0c;可供 ASP.NET 开发人员使用&#xff0c;以向应用程序添加实时功能。只要基于 ASP.NET 的应用程序必须接收来自服务器&#xff08;从监视系统到游戏&#xff09;的频繁异步更新&#xff0c;就属于典型的库用例。这些年来&#xf…

3、mybatis的全局配置文件mybatis-config.xml

对于初学者&#xff0c;如果进行mybatis的学习呢&#xff1f;我总结了几点&#xff0c;会慢慢的更新出来。首先大家需要了解mybatis是什么、用mybatis来做什么、为什么要用mybatis、有什么优缺点&#xff1b;当知道了为什么的时候就开始了解如何用的问题&#xff0c;如何使用my…

谈谈Circuit Breaker在.NET Core中的简单应用

前言由于微服务的盛行&#xff0c;不少公司都将原来细粒度比较大的服务拆分成多个小的服务&#xff0c;让每个小服务做好自己的事即可。经过拆分之后&#xff0c;就避免不了服务之间的相互调用问题&#xff01;如果调用没有处理好&#xff0c;就有可能造成整个系统的瘫痪&#…