HTML5技术

ASP.Net MVC4+Memcached+CodeFirst实现分布式缓存 - 奔跑吧!小郭(4)

字号+ 作者:H5之家 来源:H5之家 2017-01-01 13:00 我要评论( )

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using WebDemo.Models; namespace WebDemo.Controllers{ public class LogonController : Controll

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using WebDemo.Models; namespace WebDemo.Controllers { public class LogonController : Controller { ActionResult Index() { return View(); } public ActionResult Login(UserInfo user) { //创建一个DbContext对象,这样写不是很合理,先留个问题。(使用EF的code-first时需要注意的点) SchoolDbContext dbContext =new SchoolDbContext(); var loginUser = dbContext.UserInfo.Where(u => u.UName.Equals(user.UName) && u.UPwd.Equals(user.UPwd)).FirstOrDefault(); if (loginUser == null) { ); } else { Guid sessionId = Guid.NewGuid();//申请了一个模拟的GUID:SessionId //把sessionid写到客户端浏览器里面去了(一定要把sessionid写到客户端,这样用户在访问其他web资源的时候,就会把cookie中的信息传给服务器,然后通过sessionid的key到Memcached中去取对应的值) Response.Cookies[].Value = sessionId.ToString(); //再把用户的信息插入到Memcached中 MemcacheHelper.Set(sessionId.ToString(), loginUser, DateTime.Now.AddMinutes(20)); ); } } public ActionResult ValidateCode() { ValidateCodeHelper helper =new ValidateCodeHelper(); string strCode = helper.CreateValidateCode(4); Session[] = strCode; var byteData = helper.CreateValidateGraphic(strCode); ); } } }

View Code

到这里利用ASP.Net MVC4、EF(code-first)、Memcached实现分布式缓存的功能基本完成了,功能很简单,但是很值得大家体会这里面的思想。最后,为了大家好理解如何实现分布式缓存,我把demo版本的流程再给大家梳理一遍,希望对你有用。

图一:客户端是如何把数据插入到服务器端的:

图二:demo版流程:

 

 最后再补充一点:

1.1      memcached的数据生命周期

当一个键值对存放到mem中,在以下情况将会被销毁

(1)   时间到(生命周期从存放时就开始计算)

(2)   你使用delete函数,删除 flush_all

(3)   重启mem服务

(4)   重启系统

1.2   memcached插入数据的原则(说的不全,希望大家多多包涵)

(1)  变化频繁,具有不稳定性的数据,不需要实时入库。(比如在线人数,在线状态,用户评分)

(2)  门户网站的新闻,觉得页面静态化不能满足需求,可以放入到mem中。(配合JQuery的AJAX请求)

1.3  什么样的数据不适合放入memcached中

(1)过大的数据、特别重要的数据

 

 需要代码的,请在评论区留下邮箱,谢谢。如果觉得好话,希望大家推荐一下哈~~~

注:转载请注明作者,谢谢。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6) - 三生石上

    【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6) - 三生石上

    2016-12-27 13:00

  • 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上

    【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上

    2016-12-23 17:00

  • ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 - 路过秋天

    ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑

    2016-11-20 16:00

  • 在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证 - 微软一站式示

    在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

    2016-11-20 15:00

网友点评
l