当前位置: 首页 > news >正文

网站建设运营期末考试网站后台 刷新

网站建设运营期末考试,网站后台 刷新,网站开发学校有哪些,广州网站建设工作室分布式缓存是由多个应用服务器共享的缓存#xff0c;通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性#xff0c;尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比分布式缓存具有多个优势。 当分发缓存数据时数据 在多个服务器的请求之间保持一致一致性。在进行服务器重启和应用部署后仍然有效。不使用本地内存。 1. 分布式缓存的使用 .NET Core 框架下对于分布式缓存的使用是基于 IDistributedCache 接口的通过它进行抽象统一了分布式缓存的使用方式它对缓存数据的存取都是基于 byte[] 的。 IDistributedCache 接口提供以下方法来处理分布式缓存实现中的项 Get、GetAsync如果在缓存中找到则接受字符串键并以 byte[] 数组的形式检索缓存项。Set、SetAsync使用字符串键将项作为 byte[] 数组添加到缓存。Refresh、RefreshAsync根据键刷新缓存中的项重置其可调到期超时如果有。Remove、RemoveAsync根据字符串键删除缓存项。 使用的时候只需要将其通过容器注入到相应的类中即可。 2. 分布式缓存的接入 分布式缓存是基于特定的缓存应用实现的需要依赖特定的第三方应用在接入特定的分布式缓存应用时需要应用对于的 Nuget 包微软官方提供了基于 SqlServer 、Redis 实现分布式缓存的 Nuget 包还推荐了基于 Ncache 的方案除此之外还有像 Memcache 之类的方案微软虽然没有提供相应的 Nuget 包但是社区也有相关开源的项目。 这里只讲 .NET Core 下两种分布式缓存的接入和使用一种是分布式内存缓存一种是使用得比较广泛的 Redis。其他的在 .NET Core 框架下的使用是差不多的仅仅只是接入的时候有点区别。当然Redis 除了作为分布式缓存来使用还有其他更加丰富的一些功能后续也会找时间进行一些介绍。 2.1 基于内存的分布式缓存 分布式内存缓存 (AddDistributedMemoryCache) 是框架提供的 IDistributedCache 实现用于将项存储在内存中它就在 Microsoft.Extensions.Caching.Memory Nuget 包中。 分布式内存缓存不是真正的分布式缓存。 缓存项由应用实例存储在运行该应用的服务器上。 分布式内存缓存是一个有用的实现 在开发和测试场景中。 当在生产环境中使用单个服务器并且内存消耗不重要时。 实现分布式内存缓存会抽象缓存的数据存储。 如果需要多个节点或容错它允许在未来实现真正的分布式缓存解决方案。 当应用在 Program.cs 的开发环境中运行时我们可以通过以下方式使用分布式缓存以下示例代码基于 .NET 控制台程序 using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;var host Host.CreateDefaultBuilder(args).ConfigureServices(services {services.AddDistributedMemoryCache();}).Build();host.Run();之后还是和内存缓存差不多的例子演示一下缓存的存取、删除、刷新。 public interface IDistributedCacheService {Task PrintDateTimeNow(); } public class DistributedCacheService : IDistributedCacheService {public const string CacheKey nameof(DistributedCacheService);private readonly IDistributedCache _distributedCache;public DistributedCacheService(IDistributedCache distributedCache){_distributedCache distributedCache;}public async Task FreshAsync(){await _distributedCache.RefreshAsync(CacheKey);}public async Task PrintDateTimeNowAsync(){var time DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss);var cacheValue await _distributedCache.GetAsync(CacheKey);if(cacheValue null){// 分布式缓存对于缓存值的存取都是基于 byte[]所以各种对象必须先序列化为字符串之后转换为 byte[] 数组cacheValue Encoding.UTF8.GetBytes(time);var distributedCacheEntryOption new DistributedCacheEntryOptions(){//AbsoluteExpiration DateTimeOffset.Now.AddSeconds(20),AbsoluteExpirationRelativeToNow TimeSpan.FromSeconds(20),SlidingExpiration TimeSpan.FromSeconds(3)};// 存在基于字符串的存取扩展方法内部其实也是通过 Encoding.UTF8 进行了编码// await _distributedCache.SetStringAsync(CacheKey, time, distributedCacheEntryOption);await _distributedCache.SetAsync(CacheKey, cacheValue, distributedCacheEntryOption);}time Encoding.UTF8.GetString(cacheValue);Console.WriteLine(缓存时间 time);Console.WriteLine(当前时间 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss));}public async Task RemoveAsync(){await _distributedCache.RemoveAsync(CacheKey);} }之后在入口文件添加以下代码查看控制台结果是否与预想的一致 using DistributedCacheSample; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting;var host Host.CreateDefaultBuilder(args).ConfigureServices(services {services.AddDistributedMemoryCache();services.AddTransientIDistributedCacheService, DistributedCacheService();}).Build();var distributedCache host.Services.GetRequiredServiceIDistributedCacheService(); // 第一次调用设置缓存 Console.WriteLine(第一次调用设置缓存); await distributedCache.PrintDateTimeNowAsync(); await Task.Delay(TimeSpan.FromSeconds(1)); // 未过滑动时间数据不变 Console.WriteLine(未过滑动时间数据不变); await distributedCache.PrintDateTimeNowAsync(); await Task.Delay(TimeSpan.FromSeconds(3)); // 已过滑动时间数据改变 Console.WriteLine(已过滑动时间数据改变); await distributedCache.PrintDateTimeNowAsync(); await Task.Delay(TimeSpan.FromSeconds(1)); // 未过滑动时间手动刷新过期时间 Console.WriteLine(未过滑动时间手动刷新过期时间); await distributedCache.FreshAsync(); await Task.Delay(TimeSpan.FromSeconds(2)); // 距离上一次调用此方法已过滑动时间但由于手动刷新过过期时间过期时间重新计算数据不变 Console.WriteLine(距离上一次调用此方法已过滑动时间但由于手动刷新过过期时间过期时间重新计算数据不变); await distributedCache.PrintDateTimeNowAsync(); await Task.Delay(TimeSpan.FromSeconds(2)); // 移除缓存 Console.WriteLine(移除缓存); await distributedCache.RemoveAsync(); // 原有的缓存已移除调用此方法是重新设置缓存数据改变 Console.WriteLine(原有的缓存已移除调用此方法是重新设置缓存数据改变); await distributedCache.PrintDateTimeNowAsync();host.Run();结果和预想的是一致的。 2.2 基于 Redis 的分布式缓存 Redis 是一种开源的基于内存的非关系型数据存储通常用作分布式缓存。在 .NET Core 框架中使用 Redis 实现分布式缓存需要引用 Microsoft.Extensions.Caching.StackExchangeRedis Nuget 包包中通过 AddStackExchangeRedisCache 添加 RedisCache 实例来配置缓存实现该类基于 Redis 实现了 IDistributedCache 接口。 (1) 安装 Redis 这里我在云服务器上通过 Docker 快速安装了 Redis 映射容器内 Redis 默认端口 6379 到主机端口 6379并且设置了访问密码为 123456 。 docker run -d --name redis -p 6379:6379 redis --requirepass 123456(2) 应用添加依赖包并且通过配置服务依赖关系 Install-Package Microsoft.Extensions.Caching.StackExchangeRedis或者通过 VS 的 Nuget 包管理工具进行安装 依赖关系配置如下 var host Host.CreateDefaultBuilder(args).ConfigureServices(services {// services.AddDistributedMemoryCache();services.AddStackExchangeRedisCache(opyions {opyions.Configuration xxx.xxx.xxx.xxx:6379,password123456;});}).Build();这里只需要将原来的分布式内存缓存服务的配置切换为分布式 Redis 缓存的配置即可其他的什么都不用改就可以从内存缓存切换到 Redis 分布式缓存了。所以我们在日常工作的应用搭建中推荐使用基于分布式缓存方案前期或者开发环境中可以使用基于内存的分布式缓存后面项目的性能要求高了可以很方便地切换到真正的分布式缓存只需改动一行代码。 之后基于前面的例子运行应用可以看到输出的结果是一样的。 而在 Redis 上也可以看得到我们缓存上去的数据。 这里还有一个要注意的点理论上使用分布式缓存是能够增强应用的性能和体验性的但是像 Redis 这样的分布式缓存一般情况下是和应用部署在不同的服务器每一次缓存的获取会存在一定的网络传输消耗当缓存的数据量比较大而且缓存存取频繁的时候也会有很大的性能消耗。之前在项目中就遇到过这样的问题由于一个查询功能需要实时进行计算计算中需要进行循环而计算依赖于基础数据这部分的数据是使用缓存的当初直接使用 Redis 缓存性能并不理想。当然可以说这种方式是有问题的但是当时由于业务需要封装的计算方法中需要在应用启动的时候由外部初始化基础数据为基础数据能够根据前端改动而刷新所以用了缓存的方式。 下面是一个示例进行内存缓存和 Redis 缓存的对比 这里利用 BenchmarkDotNet 进行性能测试需要先对原有的代码进行一下改造这里调整了一下构造函数自行实例化相关缓存的对象之后有三个方法分别使用 Redis 缓存、内存缓存、内存缓存结合 Redis 缓存每个方法中模拟业务中的1000次循环循环中缓存数据进行存取。 点击查看性能测试代码 Program.cs 文件中只保留以下代码 Summary summary BenchmarkRunner.RunDistributedCacheService(); Console.ReadLine();测试结果如下 可以看到这种情况下使用 Redis 缓存性能是惨不忍睹的但是另外两种方式就不一样了。 我们在业务中的缓存最终就是第三种方法的方式结合内存缓存和 Redis 缓存根本的思路就是在使用时将数据临时保存在本地减少网络传输的消耗并且根据实际业务情况控制内存缓存的超时时间以保持数据的一致性。 
文章转载自:
http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn
http://www.morning.wjplr.cn.gov.cn.wjplr.cn
http://www.morning.gpnfg.cn.gov.cn.gpnfg.cn
http://www.morning.mcfjq.cn.gov.cn.mcfjq.cn
http://www.morning.hwzzq.cn.gov.cn.hwzzq.cn
http://www.morning.cwznh.cn.gov.cn.cwznh.cn
http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn
http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn
http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn
http://www.morning.ptmsk.cn.gov.cn.ptmsk.cn
http://www.morning.ymfzd.cn.gov.cn.ymfzd.cn
http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn
http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn
http://www.morning.fhhry.cn.gov.cn.fhhry.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn
http://www.morning.bgzgq.cn.gov.cn.bgzgq.cn
http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn
http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn
http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn
http://www.morning.cpqwb.cn.gov.cn.cpqwb.cn
http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn
http://www.morning.mlzyx.cn.gov.cn.mlzyx.cn
http://www.morning.yfqhc.cn.gov.cn.yfqhc.cn
http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn
http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn
http://www.morning.nfccq.cn.gov.cn.nfccq.cn
http://www.morning.mzgq.cn.gov.cn.mzgq.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.nggry.cn.gov.cn.nggry.cn
http://www.morning.wklhn.cn.gov.cn.wklhn.cn
http://www.morning.xqkjp.cn.gov.cn.xqkjp.cn
http://www.morning.pffqh.cn.gov.cn.pffqh.cn
http://www.morning.tqbw.cn.gov.cn.tqbw.cn
http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn
http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn
http://www.morning.plzgt.cn.gov.cn.plzgt.cn
http://www.morning.lrplh.cn.gov.cn.lrplh.cn
http://www.morning.bwmm.cn.gov.cn.bwmm.cn
http://www.morning.sqhtg.cn.gov.cn.sqhtg.cn
http://www.morning.csznh.cn.gov.cn.csznh.cn
http://www.morning.qtfss.cn.gov.cn.qtfss.cn
http://www.morning.yggdq.cn.gov.cn.yggdq.cn
http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn
http://www.morning.mxdiy.com.gov.cn.mxdiy.com
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.zdgp.cn.gov.cn.zdgp.cn
http://www.morning.trjr.cn.gov.cn.trjr.cn
http://www.morning.sfswj.cn.gov.cn.sfswj.cn
http://www.morning.bxsgl.cn.gov.cn.bxsgl.cn
http://www.morning.jsphr.cn.gov.cn.jsphr.cn
http://www.morning.npxht.cn.gov.cn.npxht.cn
http://www.morning.kghss.cn.gov.cn.kghss.cn
http://www.morning.fldrg.cn.gov.cn.fldrg.cn
http://www.morning.nhpmn.cn.gov.cn.nhpmn.cn
http://www.morning.xsgxp.cn.gov.cn.xsgxp.cn
http://www.morning.csznh.cn.gov.cn.csznh.cn
http://www.morning.ftzll.cn.gov.cn.ftzll.cn
http://www.morning.tbbxn.cn.gov.cn.tbbxn.cn
http://www.morning.pznhn.cn.gov.cn.pznhn.cn
http://www.morning.lywys.cn.gov.cn.lywys.cn
http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn
http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn
http://www.morning.zrdhd.cn.gov.cn.zrdhd.cn
http://www.morning.pwksz.cn.gov.cn.pwksz.cn
http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn
http://www.morning.hpprx.cn.gov.cn.hpprx.cn
http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn
http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn
http://www.morning.lhsdf.cn.gov.cn.lhsdf.cn
http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn
http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn
http://www.morning.bxrlt.cn.gov.cn.bxrlt.cn
http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn
http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn
http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn
http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn
http://www.morning.rlbg.cn.gov.cn.rlbg.cn
http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn
http://www.morning.pqnps.cn.gov.cn.pqnps.cn
http://www.tj-hxxt.cn/news/240992.html

相关文章:

  • 北京互联网公司网站建设wordpress主题加密了
  • 课程平台网站建设报价电子商城网站开发需求分析模板
  • 啤酒网站建设舜元建设集团官方网站
  • 网站功能定制合同旅游网站建设项目规划书
  • 免费创网站wordpress load.php
  • 移动端网站开发教程网站死链
  • 更换网站标题杭州旅游团购网站建设
  • 男女做羞羞事的网站华大基因 网站建设
  • 无锡网站建设xinysu永安市住房与城乡建设局网站
  • 网站建设公司推广方式网站开发流行语言
  • 上海建设网站是国家级吗阜新小程序 阜新网站建设开发
  • php mysql怎么编写视频网站网站做的好赚钱吗
  • 网站运营建设的培训做网站用商标吗
  • 打开一个网站做公司网站需要什么手续
  • 河北固安县网站建设wordpress建立频道
  • 外贸cms 网站网页制作三合一案例教程
  • 网站模板怎么引用网站改版 删除栏目
  • 威海网站建设公司中企动力全球邮企业邮箱
  • 外贸公司网站建设费用报销网站开发设计需要什么证书
  • 萧山建设局网站首页网页游戏电脑版
  • 网站做流量哪有做网站 的
  • 网站集群建设通知怎么在亚马逊做跨境电商
  • 设计类比赛网站广西住房和城乡建设厅招聘
  • 韩国网页设计公司网站网络教学平台网址
  • 做照明出口的网站博物馆网站建设
  • php语言做的大网站wordpress3d标签云
  • 新人做网络咨询的网站上海云职企业服务是干什么的
  • 郑州汉狮做网站好不wordpress 做仿站
  • 库尔勒谁在做电商网站建设网站建设运营的灵魂是什么
  • 网站接广告平台创建视频网站