[Practice Note] Net项目中Memcache的实现

这篇实践笔记详细介绍了如何在Windows上安装Memcache,并在.NET项目中使用它。首先,参照网上教程成功安装了Memcache。接着,通过添加Nuget包'Memcached.ClientLibrary'到项目中,并创建了辅助类'MemcacheHelper.cs'来实现Memcache的功能。
摘要由CSDN通过智能技术生成

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

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值