zoukankan      html  css  js  c++  java
  • net core 操作Redis

    appsettings.json

    "WebConfig": {
        "Redis": {
          "Connection": "127.0.1:6379,allowAdmin=true,password=cmkn,defaultdatabase=5,abortConnect=false",
          "InstanceName": "cmkn_Redis_Session_",
          "ApplicationName": "session_application_name",
          "PersistKeys": "DataProtection-Keys",
          "CookieName": "RedisSession","redisIP": "127.0.1",
          "redisPort": "6379",
          "redistime": "0.06:00:00"
        },
        "SessionTimeOut": "30" 
      }

    Redis操作类

    /// <summary>
        /// Redis操作类
        /// </summary>
        public class RedisHelper
        {
            public static TimeSpan ts;
            private static ConnectionMultiplexer redis = null;
            private static IDatabase database = null;
            private static IServer server = null;
            private int mydb = 0;
    
            /// <summary>
            /// redis连接
            /// </summary>
            public static string REDIS_CONN;
    
            /// <summary>
            /// redisIP
            /// </summary>
            public static string REDIS_IP;
    
            /// <summary>
            /// redis端口
            /// </summary>
            public static int REDIS_PORT;
    
            /// <summary>
            /// 初始化
            /// </summary>
            /// <param name="db"></param>
            public RedisHelper(int db)
            {
                mydb = db;
                if (redis == null)
                {
                    redis = ConnectionMultiplexer.Connect(REDIS_CONN);
                    database = redis.GetDatabase(mydb);
                    server = redis.GetServer(REDIS_IP, REDIS_PORT);
                    redis.ErrorMessage += Redis_ErrorMessage;
                }
            }
    
    
            /// <summary>
            /// 异常记录
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private static void Redis_ErrorMessage(object sender, RedisErrorEventArgs e)
            {
                //LogHelper.WriteLog("Redis", new Exception(e.Message));
            }
    
            /// <summary>
            /// 通过key获取value
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public string StringGet(string key)
            {
                return database.StringGet(key);
            }
    
            /// <summary>
            /// 新增key value
            /// </summary>
            /// <param name="key"></param>
            /// <param name="val"></param>
            /// <param name="exp"></param>
            /// <returns></returns>
            public bool StringSet(string key, string val)
            {
                return StringSet(key, val, ts);
            }
    
            /// <summary>
            /// 新增key value
            /// </summary>
            /// <param name="key"></param>
            /// <param name="val"></param>
            /// <param name="exp"></param>
            /// <returns></returns>
            public bool StringSet(string key, string val, TimeSpan exp)
            {
                return database.StringSet(key, val, exp);
            }
    
            /// <summary>
            /// 新增key value
            /// </summary>
            /// <param name="key"></param>
            /// <param name="val"></param>
            /// <param name="exp"></param>
            /// <returns></returns>
            public bool ObjectSet(string key, object val)
            {
                return ObjectSet(key, val, ts);
            }
    
            /// <summary>
            /// 新增key value
            /// </summary>
            /// <param name="key"></param>
            /// <param name="val"></param>
            /// <param name="exp"></param>
            /// <returns></returns>
            public bool ObjectSet(string key, object val, TimeSpan exp)
            {
                string json = Newtonsoft.Json.JsonConvert.SerializeObject(val);
                return database.StringSet(key, json, exp);
            }
    
            /// <summary>
            /// 获取key
            /// </summary>
            /// <param name="pattern"></param>
            /// <returns></returns>
            public IEnumerable<RedisKey> LikeKeys(string pattern = "*")
            {
                return server.Keys(database: mydb, pattern: pattern);
            }
    
            /// <summary>
            /// 查询
            /// </summary>
            /// <param name="pattern"></param>
            /// <returns></returns>
            public Dictionary<string, string> GetLikeKeyValue(string pattern = "*")
            {
                IEnumerable<RedisKey> list = LikeKeys(pattern);
                Dictionary<string, string> dic = new Dictionary<string, string>();
                if (list != null && list.Count() > 0)
                {
                    foreach (var item in list)
                    {
                        dic.Add(item, StringGet(item));
                    }
                }
                return dic;
            }
    
            /// <summary>
            /// 删除key
            /// </summary>
            /// <param name="key"></param>
            /// <returns></returns>
            public bool KeyDelete(string key)
            {
                return database.KeyDelete(key);
            }
        }

    Startup.cs 给操作类赋值

     RedisHelper.REDIS_CONN = Configuration["WebConfig:Redis:Connection"];
     RedisHelper.REDIS_IP = Configuration["WebConfig:Redis:redisIP"];
     if (!int.TryParse(Configuration["WebConfig:Redis:redisPort"], out RedisHelper.REDIS_PORT)) RedisHelper.REDIS_PORT = 6379;
  • 相关阅读:
    不常用的cmd命令
    js获取宽度
    Marshaling Data with Platform Invoke 概览
    Calling a DLL Function 之三 How to: Implement Callback Functions
    Marshaling Data with Platform Invoke 之四 Marshaling Arrays of Types
    Marshaling Data with Platform Invoke 之一 Platform Invoke Data Types
    Marshaling Data with Platform Invoke 之三 Marshaling Classes, Structures, and Unions(用时查阅)
    Calling a DLL Function 之二 Callback Functions
    WCF 引论
    Marshaling Data with Platform Invoke 之二 Marshaling Strings (用时查阅)
  • 原文地址:https://www.cnblogs.com/zldqpm/p/11316527.html
Copyright © 2011-2022 走看看