[Practice Note] Net项目中Memcache的实现
2020-01-14 10:04
483 查看
安装Memcache
参考网上教程,完成window下memcache的安装,地址:https://www.runoob.com/memcached/window-install-memcached.html
下面的代码示例是 memcache 1.4.4版本及以下
项目使用Memcache
1.在自己的项目中添加 Nuget引用:Memcached.ClientLibrary
2.新建Memcache帮助类
MemcacheHelper.cs
namespace FrameworkCore.Memcache { public class MemcacheHelper { private static readonly MemcachedClient mc = null; static MemcacheHelper() { //配置文件中配置更好 string[] serverlist = { "127.0.0.1:11211", ""}; //初始化池 SockIOPool pool = SockIOPool.GetInstance(); pool.SetServers(serverlist); pool.InitConnections = 3; pool.MinConnections = 3; pool.MaxConnections = 5; pool.SocketConnectTimeout = 3000; pool.SocketTimeout = 3000; pool.MaintenanceSleep = 30; pool.Failover = true; pool.Nagle = false; pool.Initialize(); //实例化 mc = new MemcachedClient(); mc.EnableCompression = false; } /// <summary> /// 存储数据 /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <returns></returns> public static bool Set(string key, object value) { return mc.Set(key, JsonConvert.SerializeObject(value)); } /// <summary> /// 获取数据 /// </summary> /// <param name="key"></param> /// <returns></returns> public static object Get(string key) { return mc.Get(key); } /// <summary> /// 存储数据 /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="expriyhours">存在时效h,最大时效为30d=720h</param> /// <returns></returns> public static bool Set(string key, object value,int expriyhours) { if (expriyhours <= 0) return false; DateTime dt = DateTime.Now.AddHours(expriyhours); return mc.Set(key, JsonConvert.SerializeObject(value),dt); } /// <summary> /// 移除缓存数据 /// </summary> /// <param name="key">缓存键</param> /// <returns></returns> public static bool Remove(string key) { if (mc.KeyExists(key)) return mc.Delete(key); else return true; } /// <summary> /// 刷新所有缓存,设置为过期!内存中是不删除的 /// </summary> /// <returns></returns> public static bool Clear() { return mc.FlushAll(); } } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- [转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(2)
- 在ASP.NET项目中使用CKEditor +CKFinder实现图片上传功能
- yoeman构建Asp.net core项目并且实现分层
- 在Mac上开发使用yeoman构建Asp.net core项目并且实现分层引用
- [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(5)(IEnumerable<>补充)
- 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- C# Asp.Net MVC 3 项目实现控制器(controller)与页面(view)分项目管理
- ASP.NET项目中使用CKEditor +CKFinder 实现上传图片
- Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度 Quartz.NET 项目地址 http://quartznet.sourceforge.net/ Quar
- 在 ASP.NET Core 项目中实现小写的路由URL
- C# Asp.Net MVC 3 项目实现控制器(controller)与页面(view)分项目管理
- Asp.Net大型项目实践(9)-ExtJs实现系统框架页(非iframe,附源码,在线demo)
- 【ASP.NET Core分布式项目实战】(一)IdentityServer4登录中心、oauth密码模式identity server4实现
- ASP.NET Core实现类库项目读取配置文件
- 用Git 命令行实现项目的上传到Coding.net
- asp.net项目ckeditor+ckfinder实现图片上传
- ASP.NET CORE 项目实战 ---图形验证码的实现