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

商城网站管理系统学影视后期大概多少钱

商城网站管理系统,学影视后期大概多少钱,互动营销成功案例,网站图片设计制作自己实现的一个缓存数据库#xff08;搞着玩#xff09; 想法来源特点说明 上代码主体基类测试类 注 想法来源 做过一个小型项目#xff0c;客户要求易移植#xff0c;不能使用收费的数据库#xff0c;最好是一个包搞定#xff0c;尝试过用sqlite#xff0c;在部分linux… 自己实现的一个缓存数据库搞着玩 想法来源特点说明 上代码主体基类测试类 注 想法来源 做过一个小型项目客户要求易移植不能使用收费的数据库最好是一个包搞定尝试过用sqlite在部分linux上可能需要自己安装环境比较麻烦 mysql也需要安装客户技术实力比较弱不安装多的依赖一键运行最好 特点说明 支持多线程 支持多表 适合小型项目不用安装配置其它数据库可以做到只有一个包一键启动 如果将主键id调整为手动指定的字符串可以作为系统的配置库来使用数据都在内存里面读取速度快 由于是数据是全量进行持久化保存所以不支持太大的数据量 上代码 主体 namespace Memory.Db {/// summary/// 内存数据库/// 支持多线程/// 支持多表/// 不支持大量数据/// 建议每个表数据量不要超过1w或者数据文件大小保持在5M以内/// 数据都在内存里面所以读取速度会相当快/// 适合项目/// 1.小型项目/// 2.数据量小 不想使用数据库安装配置麻烦/// /summarypublic class CacheDB:ISingleton{/// summary/// 雪花id类/// /summaryreadonly SnowflakeId _sid;public CacheDB(SnowflakeId sid){_sid sid;}//数据库private static ConcurrentDictionarystring, ConcurrentDictionarylong, dynamic _db new();//数据存放路径private string _fielpath wwwroot/cachedb/;//锁对象private object lockobj new object();/// summary/// 新增或修改/// /summary/// typeparam nameT/typeparam/// param nameitem/param/// returns/returns/// exception crefException/exceptionpublic T AddOrUpdateT(T item) where T : CacheDBEntityBase, new(){//取得表var table GetTableT();//判断是否新增if (item.Id 0){//新增item.Id _sid.GenerateId();item.CreatedTime DateTime.Now;}else{//修改if (!table.ContainsKey(item.Id)) throw new Exception(数据不存在);var old table[item.Id];item.CreatedTime old.CreatedTime;//将原来的创建时间值取过来防止被空值覆盖item.UpdateTime DateTime.Now;}///新增或修改table.AddOrUpdate(item.Id, item, (a, b) item);//保存快照SaveToFileT();return item;}/// summary/// 删除/// /summary/// typeparam nameT/typeparam/// param nameitem/param/// exception crefException/exceptionpublic void DeleteT(T item) where T : CacheDBEntityBase, new(){//取得表var table GetTableT();//按id删除if (item.Id 0) throw new Exception(未提供Id);if (table.ContainsKey(item.Id)){table.Remove(item.Id, out _);//保存快照SaveToFileT();}}/// summary/// 返回列表/// /summary/// typeparam nameT/typeparam/// returns/returnspublic ListT GetListT() where T : CacheDBEntityBase, new(){var table GetTableT();//这里先序列化成json再序列化为指定类型不然会出现值为空的情况var json table.ToJson();var data json.ToEntityDictionarylong, T();return data.Select(x x.Value).ToList();}/// summary/// 按id查询单条/// /summary/// typeparam nameT/typeparam/// param nameid/param/// returns/returnspublic T FindT(long id) where T : CacheDBEntityBase, new(){var table GetTableT();var mod table[id] as T;return mod;}/// summary/// 取得表/// /summary/// typeparam nameT/typeparam/// returns/returnspublic ConcurrentDictionarylong, dynamic GetTableT() where T: CacheDBEntityBase,new(){//获取表名var _table typeof(T).Name;ConcurrentDictionarylong, dynamic data;//判断表是否已经存在于缓存if (!_db.ContainsKey(_table)){//保存路径var _path ${_fielpath}{_table}.json;if (File.Exists(_path)){//如果文件存在从文件读取数据到缓存var json File.ReadAllText(_path);_db[_table] json.ToEntityConcurrentDictionarylong, dynamic();}else{//如果文件不存在创建新的表_db[_table] new ConcurrentDictionarylong, dynamic();}}data _db[_table];//返回表return data;}/// summary/// 快照/// /summary/// typeparam nameT/typeparam/// returns/returnsprivate async Task SaveToFileT(){lock (lockobj){var _table typeof(T).Name;var json _db[_table].ToJson();var _path ${_fielpath}{_table}.json;Directory.CreateDirectory(_fielpath);File.WriteAllText(_path, json);}}} } 基类 public class CacheDBEntityBase{/// summary/// 主键/// /summarypublic long Id { get; set; }/// summary/// 创建时间/// /summarypublic DateTime CreatedTime { get; set; }/// summary/// 修改时间/// /summarypublic DateTime? UpdateTime { get; set; }} 测试类 public class aa: CacheDBEntityBase{public string name { get; set; }public string name2 { get; set; }public string name3 { get; set; }public string name4 { get; set; }public string name5{ get; set; }}public class bb : CacheDBEntityBase{public string name { get; set; }}注 上面代码中的部分内容说明 ToJson 方法将实体转为json字符串 ToEntity 方法将json字符串转为指定的类型 SnowflakeId 雪花id类 用来生成id 上面代码中没有这些内容的实现请自行实现替代
http://www.w-s-a.com/news/443191/

相关文章:

  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站
  • 东海县建设局网站wordpress 好用的主题
  • 网站图片设计制作制作一个门户网站需要多少钱
  • 虚拟币交易网站源码自己给网站做支付接口
  • 免费的seo网站在线 crm
  • 绍兴市高速公路建设指挥部网站网站主页和子页风格如何统一
  • 获取网站状态网站租金可以做办公费吗
  • 网站开发执行什么标准号wordpress主题 表白
  • 杭州网站推广与优化凡科网是免费的吗
  • 公司网站的重要性门户网站推广介绍方案
  • 做金融网站看那些素材江门网红打卡景点蓬江区
  • 饮食网站模板建网站中企动力优
  • 郑州 制造 网站东平企业建站公司
  • 天津设计师网站大全展示型网站搭建
  • 南宁网站建设 传导网站开发平台开发公司
  • 网站建设好处上海建设工程网站
  • 黑河哈尔滨网站建设太原网站制作定制开发
  • 建站做网站香河住房与建设局网站
  • 如何制造一个网站域名分类网站
  • 解析视频的网站怎么做凡科网快图