日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Memcache使用的工具类

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Memcache使用的工具类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分布式緩存有它自己的好處 。

下面的 ConstValue.sessionId? 是一個常量?

public static readonly string sessionId = "sessionId";

過期時間。小于0 的情況下自動為0

public static readonly int sessionExpressMinute = 20;

此處貼出我寫的一個工具類。主要實現 類似session 的分布式緩存

這個工具類還用到另外一個工具類。 http://www.cnblogs.com/jixinyu12345/p/4861190.html

需要引用一些程序集,此處我就不多寫了,有問題在下面留言就可以了。

類名稱 MemcacheHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Web.ModelBinding;
using Memcached.ClientLibrary;
using System.Web;

namespace CZBK.ItcastOA.Common
{
? public?? class MemcacheHelper
? {
????? private static readonly MemcachedClient mc = null;

????? static MemcacheHelper()
????? {
????????? //連接池
????????? string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" };

????????? //初始化池
????????? SockIOPool pool = SockIOPool.GetInstance();
????????? pool.SetServers(serverlist);

????????? pool.InitConnections = 3;
????????? pool.MinConnections = 3;
????????? pool.MaxConnections = 5;

????????? pool.SocketConnectTimeout = 1000;
????????? pool.SocketTimeout = 3000;

????????? pool.MaintenanceSleep = 30;
????????? pool.Failover = true;

????????? pool.Nagle = false;
????????? pool.Initialize();

????????? // 獲得客戶端實例
????????? mc = new MemcachedClient();
????????? mc.EnableCompression = false;
????? }
????? public static bool Set(string key, object value)
????? {
????????? return mc.Set(key, value);
????? }
????? public static bool Set(string key, object value, DateTime time)
????? {
????????? return mc.Set(key, value, time);
????? }
????? /// <summary>
????? /// 獲取數據
????? /// </summary>
????? /// <param name="key"></param>
????? /// <returns></returns>
????? public static object Get(string key)
????? {
????????? return mc.Get(key);
????? }
????? /// <summary>
????? /// 刪除
????? /// </summary>
????? /// <param name="key"></param>
????? public static bool Delete(string key)
????? {
????????? if (mc.KeyExists(key))
????????? {
????????????? return mc.Delete(key);
????????? }
????????? return false;
????? }

????? /// <summary>
????? /// 模仿session的方式
????? /// </summary>
????? /// <typeparam name="T">需要反序列化的那個類型</typeparam>
????? /// <param name="key">鍵</param>
????? /// <param name="date">相對過期時間,以分鐘為準</param>
????? /// <returns>返回一個已經反序列化的一個對象,as 就可以直接轉變</returns>
????? public static object? SessionGet<T>(string? key ,int minute =20)??? where T:class , new ()
????? {//取回緩存中的值
????????? if (string.IsNullOrEmpty(key))
????????? {return null;
????????? }
????????? object obj? = mc.Get(key);
????????? if (obj!= null && mc.Set(key, obj, DateTime.Now.AddMinutes(minute)))
????????? {
????????????? return SerializeHelper.DeserializeToObject<T>(obj.ToString());
????????? }
????????? mc.Delete(key);
????????? return null;
??????????? ;
????? }
????? /// <summary>
????? /// 判斷寫入緩存
????? /// </summary>
????? /// <param name="value">鍵</param>
????? ///? <param name="context">上下文</param>
????? /// <param name="minute">過期時間? 默認為 20</param>
????? /// <returns>? 是否成功</returns>
????? public static bool? SessionSet(object value,int minute = 20)
????? {
????????? //設置默認過期時間
????????? if (minute <= 0)
????????? {
????????????? minute = ConstValue.sessionExpressMinute;
????????? }
????????? value = SerializeHelper.SerializeToString(value);
????????? string key = Guid.NewGuid().ToString();
????????? if (mc.Set(key, value, minute))
????????? {
????????????? HttpContext.Current.Response.Cookies[ConstValue.sessionId].Value = key;
????????????? return true;
????????? }
????????? return false;
????? }
???? / <summary>
???? /
???? / </summary>
???? / <param name="value">傳過來一個實體類型</param>
???? / <param name="response">響應體</param>
???? // /// <param name="minute">過期時間? 默認為 20</param>
???? / <returns></returns>
???? // public static bool SessionSet(object value,? int minute = 20)
???? // {
?????????
???? //???? //設置默認過期時間
???? //??? if (minute <= 0)
???? //??? {
???? //??????? minute = ConstValue.sessionExpressMinute;
???? //??? }
???? //??? value = SerializeHelper.SerializeToString(value);
???? //???? string key = Guid.NewGuid().ToString();
???? //???? if (mc.Set(key, value))
???? //???? {
???? //???????? HttpContext.Current.Response.Cookies[ConstValue.sessionId].Value = key;
???? //???????? return true;
???? //???? }
???? //???? return false;
???? // }

? }
}

轉載于:https://www.cnblogs.com/jixinyu12345/p/4861174.html

總結

以上是生活随笔為你收集整理的关于Memcache使用的工具类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。