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

绍兴建设企业网站太原建站的模板

绍兴建设企业网站,太原建站的模板,申请了域名 网站怎么建设呢,东莞网站平台后缀在开发过程中#xff0c;我们经常需要使用缓存来提高应用程序的性能。本文将介绍如何使用C#实现一个简单的内存缓存系统#xff0c;它模仿了Redis的部分基本功能 功能#xff1a; 基本的键值存储支持过期时间支持泛型类型Hash 类型操作线程安全清理过期项 优点#xff1…在开发过程中我们经常需要使用缓存来提高应用程序的性能。本文将介绍如何使用C#实现一个简单的内存缓存系统它模仿了Redis的部分基本功能 功能 基本的键值存储支持过期时间支持泛型类型Hash 类型操作线程安全清理过期项 优点 不依赖第三方库实现简单内存操作速度快支持基本的 Redis 功能 限制 数据存储在内存中程序重启后数据会丢失不支持分布式功能相对简单 代码实现 using System.Collections.Concurrent;namespace SimpleRedisApp {public interface ISimpleRedis{bool SetT(string key, T value, TimeSpan? expiry null);T GetT(string key);bool Delete(string key);bool Exists(string key);Liststring GetAllKeys();bool HashSet(string key, string field, object value);T HashGetT(string key, string field);void RemoveExpiredItems();}/// summary/// 简单的内存缓存实现/// /summarypublic class SimpleRedis : ISimpleRedis{// 使用ConcurrentDictionary保证线程安全private static readonly ConcurrentDictionarystring, CacheItem Cache new ConcurrentDictionarystring, CacheItem();// 缓存项类包含值和过期时间private class CacheItem{public object Value { get; set; }public DateTime? ExpireTime { get; set; }}/// summary/// 设置缓存/// /summarypublic bool SetT(string key, T value, TimeSpan? expiry null){var item new CacheItem{Value value,ExpireTime expiry.HasValue ? DateTime.Now.Add(expiry.Value) : null};Cache.AddOrUpdate(key, item, (k, old) item);return true;}/// summary/// 获取缓存/// /summarypublic T GetT(string key){if (Cache.TryGetValue(key, out CacheItem item)){if (item.ExpireTime.HasValue item.ExpireTime.Value DateTime.Now){// 已过期删除并返回默认值Cache.TryRemove(key, out _);return default(T);}return (T)item.Value;}return default(T);}/// summary/// 删除缓存/// /summarypublic bool Delete(string key){return Cache.TryRemove(key, out _);}/// summary/// 判断键是否存在/// /summarypublic bool Exists(string key){return Cache.ContainsKey(key) (!Cache[key].ExpireTime.HasValue || Cache[key].ExpireTime.Value DateTime.Now);}/// summary/// 清空所有缓存/// /summarypublic void Clear(){Cache.Clear();}/// summary/// 获取所有键/// /summarypublic Liststring GetAllKeys(){return Cache.Keys.ToList();}/// summary/// 设置Hash/// /summarypublic bool HashSet(string key, string field, object value){var hash GetDictionarystring, object(key) ?? new Dictionarystring, object();hash[field] value;return Set(key, hash);}/// summary/// 获取Hash/// /summarypublic T HashGetT(string key, string field){var hash GetDictionarystring, object(key);if (hash ! null hash.ContainsKey(field)){return (T)hash[field];}return default(T);}/// summary/// 删除过期的缓存项/// /summarypublic void RemoveExpiredItems(){var now DateTime.Now;var expiredKeys Cache.Where(kvp kvp.Value.ExpireTime.HasValue kvp.Value.ExpireTime.Value now).Select(kvp kvp.Key).ToList();foreach (var key in expiredKeys){Cache.TryRemove(key, out _);}}}public class User{public string Name { get; set; }public int Age { get; set; }}internal class Program{static void Main(string[] args){var redis new SimpleRedis();// 字符串操作redis.Set(name, 张三, TimeSpan.FromMinutes(1));var name redis.Getstring(name);Console.WriteLine($Name: {name});// 对象操作var user new User { Name 李四, Age 25 };redis.Set(user:1, user);var savedUser redis.GetUser(user:1);Console.WriteLine($User: {savedUser.Name}, {savedUser.Age});// Hash操作redis.HashSet(user:2, name, 王五);redis.HashSet(user:2, age, 30);var userName redis.HashGetstring(user:2, name);var userAge redis.HashGetint(user:2, age);Console.WriteLine($Hash User: {userName}, {userAge});// 删除操作redis.Delete(name);// 检查键是否存在var exists redis.Exists(user:1);Console.WriteLine($user:1 exists: {exists});// 获取所有键var allKeys redis.GetAllKeys();Console.WriteLine($All keys: {string.Join(, , allKeys)});// 存入缓存设置过期时间为30分钟redis.Set($user:3, user, TimeSpan.FromMinutes(30));// 清理过期项redis.RemoveExpiredItems();Console.ReadKey();}} }可以写个定时器定期清理过期项
http://www.zqtcl.cn/news/884674/

相关文章:

  • 建设项目环境影响登记表备案系统网站签署网站建设协议新闻
  • 有的网站在浏览器打不开怎么办最近中国新闻热点大事件
  • 网站模板组件随州网站建设有哪些
  • 网站建设微信版8080端口wordpress
  • 急求聊城网站建设微信网页注册入口
  • 商城网站建站程序网站内链布局
  • 盐城网站建设方案全景旅游网站项目建设
  • 网站备案完电信园林效果图网站
  • 伤豆丁文库网站开发贵州网站备案局
  • 做网站的注意什么北京建设协会网站首页
  • 石家庄网站开发设计网站建设重点步骤
  • 推广思路及执行方案昆明百度seo
  • 太原公司网站建立可视化小程序开发工具
  • 怎么做网站的搜索引擎云主机有什么用
  • 淘宝客新增网站南宁百度seo优化
  • 建设厅网站合同备案在哪里网站备案本人承诺
  • 做方案的网站住房城乡建设部官网
  • 怎样在门户网站做 推广天水市建设银行官方网站
  • 温州建网站哪家强网站建设谈客户说什么
  • 网站的子域名怎么设置整站seo排名外包
  • 免费网站在哪下载苏州建设银行网站
  • 邹平 建设项目 网站公示怎样做网站卖自己的产品教程
  • 手机免费网站建设哪家公司好免费动态域名申请
  • 提升网站排名怎么提交自己的网站
  • cms网站开发phpwordpress有什么功能
  • 专业网站制作解决方案自己在家搭建服务器
  • 中小企业网站提供了什么英文营销网站建设
  • 玉环市建设工程检测中心网站网站建设服务的具体条件
  • 主机网站wampserver搭建网站
  • 建设银行网站点不进去深圳龙华区招聘网最新招聘信息