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;
  • 相关阅读:
    反射泛型方法
    Redis令牌桶限流
    laravel中间件的使用
    Laravel-权限系统
    Laravel 即时应用的一种实现方式
    laravel实现多模块
    laravel5+ElasticSearch+go-mysql-elasticsearch MySQL数据实时导入(mac)
    swoole视频直播
    开发SSO单点登录需要注意的问题
    进程、线程、协程三者之间的联系与区别
  • 原文地址:https://www.cnblogs.com/zldqpm/p/11316527.html
Copyright © 2011-2022 走看看