c# 根据唯一码,存缓存 实现12小时内 阅读量+1
需求:某一个详细页面需要实现用户 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) }
本文来自博客园,作者:12不懂3,转载请注明原文链接:https://www.cnblogs.com/LZXX/p/8057575.html