最新要闻
- 共赴数字之约 描绘数字未来
- 当前观察:RTX 4070为何会破发?背后原因揭开
- 热门看点:ChatGPT一炮而红 OpenAI再度融资:估值已达2000亿
- 冲击30℃!五一假期北方多地开启升温模式 南方降雨在路上 世界今亮点
- 聊聊拍照那些事:五一外出你更喜欢用相机还是手机?_每日速读
- 越级影像旗舰真我11即将发布 realme徐起:五一大家休息 节后爆猛料|全球即时看
- 全球微资讯!“五一”档10余部新片集中上映
- 住客称入住网红酒店发现死尸打1星“差评” 涉事酒店回应_微头条
- 每日热讯!外观大变 首增插混!全新广汽本田雅阁开启11元盲订
- 曝Redmi K60 Ultra下半年登场:天玑9200+加持 安卓CPU性能之王
- 比NAS更好用!华为家庭存储便宜了:2699元起 最大16TB 环球热讯
- 两款《古墓丽影》游戏将登陆Switch!跟着劳拉去破坏“文物”
- 热门5G手机市占率排名:华为P40 Pro国产机第一 5G平分天下 天天观速讯
- 承认车辆侧面碰撞试验“造假” 丰田章男道歉:我们错了
- 世界实时:五一2.4亿人次出游 酒店民宿价格5-7倍上涨 经济日报:违约应赔偿
- 离离原上谱!求职者:6000工资太高 只要2000可以吗?|世界时快讯
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
.Net Core Console&Cache 当前动态
前言
有时候想快速验证一些想法,新建一个控制台来弄,可控制台模板是轻量级的应用程序模板,不具备配置、日志、依赖注入等一些功能。
【资料图】
缓存
在网站开发中,缓存无处不在,它能够极大地提高硬件和软件的运行速度。性能优化的第一步便是使用缓存,例如频繁的从数据库中读取,需要和底层IO交互,性能受限,如将常用数据加载到内存中,那么便可以极大的提升性能。
Nuget包
缓存抽象包
Install-Package Microsoft.Extensions.Caching.Abstractions
如使用内存做缓存
Install-Package Microsoft.Extensions.Caching.Memory
如使用Redis做缓存
Install-Package Microsoft.Extensions.Caching.Redis
还有其他一些缓存包,此处省略
缓存使用
新建控制台项目,此处使用Memory包,简单存取一个字符串到内存中。
using Microsoft.Extensions.Caching.Memory;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;var host = Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddMemoryCache(); }) .Build();using (var serviceScope = host.Services.CreateScope()){ var services = serviceScope.ServiceProvider; var cache = services.GetRequiredService(); cache.Set("key", "value"); Console.WriteLine(cache.Get("key"));}
如上使用了通用主机包 Microsoft.Extensions.Hosting
过期策略
除了纯设置key-value值外还可以设置缓存的有效期,存在四种设置策略。
- 永不过期
- 绝对过期:指定过期时长再访问就失效。
- 滑动过期:指定过期时长内访问,过期时常最终截止时间延长。
- 绝对+滑动过期:滑动过期基础上再设置绝对过期,避免无限延长。
滑动过期
可通过MemoryCacheEntryOptions来设置过期策略,此处设置1.5秒滑动过期。
cache.Set("key", "value", new MemoryCacheEntryOptions(){ SlidingExpiration = TimeSpan.FromSeconds(1.5)});Console.WriteLine($"{DateTime.Now:HHmmss}_Init_{cache.Get("key")}");Thread.Sleep(1000);Console.WriteLine($"{DateTime.Now:HHmmss}_First_{cache.Get("key")}");Thread.Sleep(2000);Console.WriteLine($"{DateTime.Now:HHmmss}_Second_{cache.Get("key")}");
在1秒后访问,过期时长延长,sleep2秒后再次访问则失效。
缓存回调
在缓存失效时还可以执行些回调逻辑。
var options = new MemoryCacheEntryOptions(){ SlidingExpiration = TimeSpan.FromSeconds(1.5),};options.RegisterPostEvictionCallback((key, value, reason, state) =>{ Console.WriteLine("key=" + key); Console.WriteLine("value=" + value); Console.WriteLine("reason=" + reason); Console.WriteLine("state=" + state);}, "statestr");
当超过缓存时长,执行回调逻辑,此处将key value输出,可以看到尽管缓存失效获取对应值为空了,但是缓存回调中还是有值的展示,在这可以做些处理,例如如果是特定值,可以再次加入到缓存中。
PostEvictionCallback可以绑定多个回调方法,注意每个回调方法在失效后只会执行一次,多次访问缓存key,当扫描到失效后执行回调,后续访问缓存key都不会获取到缓存实例了。
源码分析
IMemoryCache源码中定义了三个方法对应增删查操作。
在这基础上还有一些扩展方法在Caching.Abstraction包中。
在IMemoryCache具体实现中,最终是存储在字典中,源码位置
存储的实际对象是CacheEntry,在MemoryCache中,将自身与key作为参数封装到CacheEntry中
对于缓存的一些设置,如缓存项大小,缓存有效期,访问时扫描时间,缓存失效回调等,则通过MemoryCacheOptions完成,可以在单个缓存项设置也可以在全局服务注册时设置好。
参考
https://learn.microsoft.com/zh-cn/dotnet/core/extensions/caching
2023-04-30,望技术有成后能回来看见自己的脚步
关键词:
.Net Core Console&Cache 当前动态
共赴数字之约 描绘数字未来
当前观察:RTX 4070为何会破发?背后原因揭开
热门看点:ChatGPT一炮而红 OpenAI再度融资:估值已达2000亿
冲击30℃!五一假期北方多地开启升温模式 南方降雨在路上 世界今亮点
聊聊拍照那些事:五一外出你更喜欢用相机还是手机?_每日速读
越级影像旗舰真我11即将发布 realme徐起:五一大家休息 节后爆猛料|全球即时看
全球微资讯!“五一”档10余部新片集中上映
住客称入住网红酒店发现死尸打1星“差评” 涉事酒店回应_微头条
每日热讯!外观大变 首增插混!全新广汽本田雅阁开启11元盲订
曝Redmi K60 Ultra下半年登场:天玑9200+加持 安卓CPU性能之王
比NAS更好用!华为家庭存储便宜了:2699元起 最大16TB 环球热讯
两款《古墓丽影》游戏将登陆Switch!跟着劳拉去破坏“文物”
学系统集成项目管理工程师(中项)系列15_质量管理 世界视讯
热门5G手机市占率排名:华为P40 Pro国产机第一 5G平分天下 天天观速讯
承认车辆侧面碰撞试验“造假” 丰田章男道歉:我们错了
世界实时:五一2.4亿人次出游 酒店民宿价格5-7倍上涨 经济日报:违约应赔偿
离离原上谱!求职者:6000工资太高 只要2000可以吗?|世界时快讯
五一假期首日服务区充电站排队时长榜来了:充电要等2.7小时你接受吗?
驻村故事(逐梦)
【全球聚看点】好评率近100%!Redmi Note 12 Turbo把竞品甩在后面:1TB版太受欢迎
Markdown表格-换行、合并单元格
消息!关于方正证券的一些信息
《死或生:女神假期》新女神艾米登场:身材出众的18岁研究生 焦点要闻
超大额优惠券手慢无:植贝名朵防晒小光圈到手19.9元/瓶
聚焦产业建圈强链 成都市温江区举行校地合作交流会
【焦点热闻】退市三板行情_退市三板股票代码
启动“三年共富行动计划”,以“三拼”之势打造“六个乾潭”|微动态
蓝牙为啥叫“蓝”牙?就不能叫白牙吗?-全球微速讯
高速上44辆车被扎胎!初查结果:系货车铁屑散落
PC玩家很受伤!今年翻车的大作太多了
世界快看点丨【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
全球观热点:工程建设的范围是什么_工程建设的范围
海底捞一门店睡满人导致无法用餐:全是“特种兵”式大学生
[0基础学R语言] 软件下载与环境配置_天天热点
焦点!15 设备类型与设备驱动
万物皆有灵下一句是什么_万物皆有灵 全球百事通
每日快看:对标《原神》!《王者荣耀世界》新实机画面:蓝BUFF化身寒冰之王
Uzi老对手官宣转型!LOL“欧成”Rekkles改打辅助
快资讯丨苏教版二年级上册数学期中试卷含答案_苏教版二年级上册数学期中试卷
当前动态:4999元 荣耀MagicBook 14 GT版上架:RTX 2050独显
世界短讯!USB:终于一统江湖
视频会议的免费时代:宣告结束了 环球观热点
环球新动态:世界第八大奇迹!放假第一天兵马俑游客突破五万人:秦俑打上了保湿抗皱针
世界资讯:ssti注入
简讯:椰子怎么喝 椰子怎么喝最好
《角斗士》旧情人欣然返场
主机用质量模式玩《星球大战绝地》更好?起码可稳30帧 全球热门
MySQL常用数据库语句 天天观天下
穿小椰子怎么搭配衣服 穿小椰子鞋如何搭配_全球今日讯
最新:男子服务区买15元汉堡只有2片面包 老板:你不要我退钱
九号平衡车L8奥特曼定制版发布:首发1799元 可触发彩蛋
赛力斯2022年营收翻倍:问界M5/M7立大功
当前滚动:xss-labs靶场
男人对你说子非鱼是什么意思_子非鱼是什么意思
飞利浦推出新款24.5寸游戏显示器:280Hz高刷、0.5ms极速响应|全球观速讯
速读:14 进程的等待与唤醒机制
【环球新视野】基于python实现将AWS-ElastiCache-的Reserved_Cache_Nodes-预留节点及费用的信息统计
traefik网关的https上游配置_微速讯
五一档新片总票房突破4亿 《长空之王》1.7亿拔得头筹 环球即时
世界报道:红魔二代骁龙8平板来了:144Hz 2.8K屏、12000mAh大电池
“赏花游”“农舍游”成为开启乡村振兴的“金钥匙”
【报资讯】浅谈 LIS 问题的几种做法
自驾游成五一出行新亮点 不少小众游目的地热度上升 最资讯
五一12万人涌入淄博 专家称淄博烧烤一时好不代表长效好_世界播报
女顾客点外卖备注科一95 热心肠骑手慌了:闹出乌龙
天天短讯!30天无理由退换 鼎能电蚊拍9.9元狂促:安全不电人、纯物理灭蚊
P6818 [PA2013]Działka 题解_环球报道
【聚看点】正负值-28全场最差!G6汤神勇不再 卫冕冠军陷入绝境
环球快看:取代C++!微软改用Rust语言重写Win11内核:简洁安全、性能更佳
Python 基于win32com客户端实现Excel操作 讯息
14 进程调度
美SpaceX火箭发射推迟:发射台遭多道闪电击中 画面曝光_当前通讯
美国一学校限制使用男女孩称呼 以分泌精子和卵子的人代替
磁吸免布线:Yeelight充电人体感应灯9元狂促
6月9日上映!《变形金刚7:超能勇士崛起》新海报:擎天柱猩猩队长联手
天天快播:【环球财经】英国3月份商用汽车产量下跌3%
自己创作一首现代诗歌范文_自己创作一首现代诗
环球热推荐:喊话多生孩子防文明崩溃的马斯克突然变脸了 网友抨击:幻想破灭
仰望红绿灯起步加速果然快 痛击自家兄弟比亚迪汉EV 每日资讯
手把手教你高铁上点外卖 能送到座位的那种
日常168元 AL无火香薰1.1折清仓 实付19元(杭州亚运会供应商)-新资讯
银护拯救漫威_全球快讯
天天快消息!《火炬之光》无限白煞获得方法
13 进程
【环球财经】纽约金价28日微涨0.01%
全球今头条!【环球财经】芝加哥农产品期价28日全线上涨
5月新规来了!互联网广告新限制:关闭弹出广告不得经两次以上点击
北京高考满分作文:制约与发展 吉林高考满分作文:风采的小李
RabbitMQ 实现消息队列延迟
csv用Excel打开出现乱码
《新哥斯拉》导演新作《新奥特曼》曝光造型,一个经典设定被取消-环球新要闻
《王者荣耀》妲己九尾狐皮肤被吐槽:有人花了1200元才抽中_天天时讯
没5G 华为手机销量暴涨41%!为何这么多人买4G华为手机
五一旅游高峰人从众景点再现!网友:堵住我的车 堵不住我的腿|全球快资讯
【新华解读】“互换通”正式落地!释放外资参与境内衍生品潜力 促进金融市场稳健开放 环球时讯
深中通道伶仃洋大桥合龙
1799元起 小米电视A55/A65竞技版上架:4K 120Hz高刷屏
今日快讯:米哈游《崩坏:星穹铁道》上线腾讯START云游戏:三端互通、无需下载
全球最资讯丨杭州小伙开法拉利炸街被阿姨当场教育?反转再反转