C# Redis 幫助類
阿新 • • 發佈:2021-01-17
總結下,後期會陸續更新
using System; using System.Collections.Generic; using System.Linq; using System.Text; using StackExchange.Redis; using System.Threading; using System.Data; using System.Configuration; namespace WebCommon { public class RedisHelper { private static string connectStr = ConfigurationManager.AppSettings["RedisServer"]; private static ConfigurationOptions configurationOptions = ConfigurationOptions.Parse(connectStr); //the lock for singleton private static readonly object Locker = new object(); //singleton private static ConnectionMultiplexer redisConn; /// <summary> /// 連線redis /// </summary> /// <returns></returns> public static ConnectionMultiplexer getRedisConn() { if (redisConn == null) { lock (Locker) { if (redisConn == null || !redisConn.IsConnected) { redisConn = ConnectionMultiplexer.Connect(configurationOptions); } } } return redisConn; } #region Redis 字串操作 /// <summary> /// 設定一個key的值 /// </summary> /// <param name="strKey"></param> /// <param name="strValue"></param> public void InsertStr(string strKey, string strValue) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); //set get bool setResult = db.StringSet(strKey, strValue); } /// <summary> /// 設定一個key的值並設定過期時間 /// </summary> /// <param name="strKey">key</param> /// <param name="strValue">values</param> /// <param name="expirytime">過期時間</param> /// <param name="databasenum"></param> public void InsertStr(string strKey, string strValue, DateTime expirytime, int databasenum) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(databasenum); bool setResult = db.StringSet(strKey, strValue); db.KeyExpire(strKey, expirytime.ToUniversalTime()); } /// <summary> /// 讀取一個key值 /// </summary> /// <param name="strKey"></param> /// <returns></returns> public string ReadStr(string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); return db.StringGet(strKey); } /// <summary> /// 刪除一個key值 /// </summary> /// <param name="strKey"></param> public void DeleteStr(string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); //set get bool setResult = db.KeyDelete(strKey); } /// <summary> /// 刪除一個key值 /// </summary> /// <param name="strKey"></param> /// <param name="databasenum"></param> /// <returns></returns> public bool DeleteStr(string strKey, int databasenum) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(databasenum); return db.KeyDelete(strKey); } /// <summary> /// 判斷key是否存在 /// </summary> /// <param name="strKey"></param> /// <returns></returns> public bool Exist(string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); return db.KeyExists(strKey); } #endregion #region Redis雜湊操作 /// <summary> /// 新增一個key值 /// </summary> /// <param name="tablename"></param> /// <param name="strKey"></param> /// <param name="strValue"></param> public void InsertHash(string tablename, string strKey, string strValue) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); //set get bool setResult = db.HashSet(tablename, strKey, strValue); } /// <summary> /// 讀取一個key值 /// </summary> /// <param name="tablename"></param> /// <param name="strKey"></param> /// <returns></returns> public string ReadHash(string tablename, string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); return db.HashGet(tablename, strKey); } /// <summary> /// 判斷一個key值是否存在 /// </summary> /// <param name="tablename"></param> /// <param name="strKey"></param> /// <returns></returns> public bool ExistHash(string tablename, string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); return db.HashExists(tablename, strKey); } /// <summary> /// /// </summary> /// <param name="tablename"></param> /// <param name="strKey"></param> public void DeleteHash(string tablename, string strKey) { redisConn = getRedisConn(); var db = redisConn.GetDatabase(); //set get bool setResult = db.HashDelete(tablename,strKey); } #endregion } }