您的位置:首页 > 数据库 > Memcache

[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();
}

}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
Gen?? 发布了17 篇原创文章 · 获赞 0 · 访问量 259 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐