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