首页 > 技术文章 > c# 根据唯一码,存缓存 实现12小时内 阅读量+1

LZXX 2017-12-18 14:50 原文

需求:某一个详细页面需要实现用户 12小时内阅读量+1,

实现思路;得到一个唯一码的机器码,不管是否用户登录了 都有这个码,然后存到缓存里面 最后判断时间+12小时  是否超过当前时间

 

   string cacheID="" //此处获取唯一机器码
            //获取缓存
            object  ReadingCache = HttpRuntime.Cache["name"];  //  name 自己定义
      
      if (ReadingCache== null)
            {//如果当前缓存为空
                //创建缓存
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
          // 实例化 list<A> List
<A> list = new List<A>();
          //实例化 A类 该类有两个字段 ID,CreateTime //唯一码 创建时间 A CustomerModel
= new A(); CustomerModel.ID = CustomerGuid; CustomerModel.CreateTime = DateTime.Now;
          //添加到LIST 集合中 list.Add(CustomerModel);
//添加缓存 objCache.Insert("LiveCustomerReading", list, null); //阅读量+1 此处 获取数据库的 阅读量字段 并+1 更新 //查询数据库的阅读量 并+1更新 int count= 查数据阅读量
          bool isupdate=更新数据库阅读量方法(count) }
else {//如果不为空 List<A> AAAA= new List<A>(); AAA= (List<A>)HttpRuntime.Cache["name"]; //得到当前用户的缓存 var isList= LiveCustomerReadingCacheList.FindAll(s => s.ID== CustomerGuid); if ( isList.Count>0) {//查找到当前用户 DateTime customertime = DateTime.Now; foreach (var item in isList) { customertime = item.CreateTime.AddHours(12); }
            //判断当前时间 是否超过12小时
if (customertime < DateTime.Now) {//如果超时 则更新时间,并阅读量+1 int count=查询数据库 +1
               boll isupdate= 更新到数据库方法(count)
List<A> uptime = isList as List<A>; A uptimes= uptime.Find(s => s.ID == CustomerGuid); uotimes.CreateTime = DateTime.Now; //更新缓存时间 } } else {//如果没找到用户ID 则追加到缓存类 List<A> uptime = isList as List<A>; Aaddcustome = new A(); addcustome.ID = CustomerGuid; addcustome.CreateTime = DateTime.Now; uptime.Add(addcustome); int count=查询数据库阅读量 并 +1 bool isupdate=更新数据库阅读量方法(count) }

 

推荐阅读