记一次 缓存 更新
1小小应用:
Dictionary<string, string> dic = new Dictionary<string, string>(); 2 dic.Add("巴萨主帅", "哈维"); 3 dic.Add("曼城主帅", "瓜迪奥拉"); 4 5 MemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions() { }); 6 7 foreach (var item2 in dic) 8 { 9 memoryCache.Set(item2.Key, item2.Value, new MemoryCacheEntryOptions 10 { 11 SlidingExpiration = TimeSpan.FromSeconds(10),//本行代码 表示 10秒 后 无数据更新,则缓存消失,否则更新缓存 12 }); 13 14 } 15 16 foreach (var item in list) 17 { 18 if (memoryCache.Get(item).ToString()=="哈维"|| memoryCache.Get(item).ToString() =="瓜迪奥拉") 19 { 20 Console.WriteLine(item); 21 } 22 //return; 23 }
测试代码:
1 using Microsoft.Extensions.Caching.Memory; 2 using System; 3 using System.Threading; 4 5 namespace 缓存测试 6 { 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 MemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions() { }); 12 13 memoryCache.Set("mykey", "myvalue"); 14 15 //2.绝对过期时间,3秒后过期 16 memoryCache.Set("key1", "value1", new DateTimeOffset(DateTime.Now.AddSeconds(3))); 17 //3.绝对过期时间,效果同上 18 memoryCache.Set("key2", "value2", TimeSpan.FromSeconds(3)); 19 //4.滑动过期时间,3秒后,即三秒钟内被访问,则重新刷新缓存时间为3秒后 20 memoryCache.Set("key3", "value3", new MemoryCacheEntryOptions 21 { 22 SlidingExpiration = TimeSpan.FromSeconds(3), 23 }); 24 25 Console.WriteLine("-----------暂停2秒"); 26 Thread.Sleep(2000);//暂停2秒 27 Console.WriteLine($"key1的值:{memoryCache.Get("key1") ?? "key1被清除"}"); 28 Console.WriteLine($"key2的值:{memoryCache.Get("key2") ?? "key2被清除"}"); 29 Console.WriteLine($"key3的值:{memoryCache.Get("key3") ?? "key3被清除"}"); 30 31 Console.WriteLine("-----------暂停2秒"); 32 Thread.Sleep(2000);//再次暂停2秒 33 Console.WriteLine($"key1的值:{memoryCache.Get("key1") ?? "key1被清除"}"); 34 Console.WriteLine($"key2的值:{memoryCache.Get("key2") ?? "key2被清除"}"); 35 Console.WriteLine($"key3的值:{memoryCache.Get("key3") ?? "key3被清除"}"); 36 37 Console.WriteLine("-----------暂停4秒"); 38 Thread.Sleep(4000);//再次暂停4秒 39 Console.WriteLine($"key1的值:{memoryCache.Get("key1") ?? "key1被清除"}"); 40 Console.WriteLine($"key2的值:{memoryCache.Get("key2") ?? "key2被清除"}"); 41 Console.WriteLine($"key3的值:{memoryCache.Get("key3") ?? "key3被清除"}"); 42 } 43 } 44 }
posted on 2022-06-12 22:35 泰坦尼克号上的活龙虾 阅读(29) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库