zoukankan      html  css  js  c++  java
  • c# core api 配置redis

    1、在appsetting中配置连接字符串

    "ConnectionStrings": {
     "RedisConnectionString":"127.0.0.1:6379,password=xxxxx,defaultDatabase=2"
    }
    

    2、新建Redis帮助类RedisClient.cs;注意:这个时候回报错   直接右键查找最新get包   引用安装就可以 了

    using Microsoft.Extensions.Configuration;
    using Newtonsoft.Json;
    using StackExchange.Redis;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    
    namespace LoveInnPush.API
    {
        public class RedisClient
        {
            private static readonly object Locker = new object();
    
            private ConnectionMultiplexer redisMultiplexer;
    
            IDatabase db = null;
    
            private static RedisClient _redisClient = null;
            public static RedisClient redisClient
            {
                get
                {
                    if (_redisClient == null)
                    {
                        lock (Locker)
                        {
                            if (_redisClient == null)
                            {
                                _redisClient = new RedisClient();
    
                            }
                        }
                    }
                    return _redisClient;
                }
            }
    
            public void InitConnect(IConfiguration Configuration)
            {
                try
                {
                    var RedisConnection = Configuration.GetConnectionString("RedisConnectionString");
                    redisMultiplexer = ConnectionMultiplexer.Connect(RedisConnection);
                    db = redisMultiplexer.GetDatabase();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    redisMultiplexer = null;
                    db = null;
                }
            }
    
            public RedisClient()
            {
    
            }
    
            /// <summary>
            /// 保存单个key value
            /// </summary>
            /// <param name="value">保存的值</param>
            /// <param name="expiry">过期时间</param>
            public bool SetStringKey(string key, string value, TimeSpan? expiry = default(TimeSpan?))
            {
                return db.StringSet(key, value, expiry);
            }
    
            /// <summary>
            /// 保存一个对象
            /// </summary>
            /// <param name="obj"></param>
            public bool SetStringKey<T>(string key, T obj, TimeSpan? expiry = default(TimeSpan?))
            {
                if (db == null)
                {
                    return false;
                }
                string json = JsonConvert.SerializeObject(obj);
                return db.StringSet(key, json, expiry);
            }
    
            /// <summary>
            /// 获取单个key的值
            /// </summary>
            public RedisValue GetStringKey(string key)
            {
                return db.StringGet(key);
            }
    
            /// <summary>
            /// 获取一个key的对象
            /// </summary>
            public T GetStringKey<T>(string key)
            {
                if (db == null)
                {
                    return default;
                }
                var value = db.StringGet(key);
                if (value.IsNullOrEmpty)
                {
                    return default;
                }
                return JsonConvert.DeserializeObject<T>(value);
            }
    
            /// <summary>
            /// 移除
            /// </summary>
            /// <param name="key">key值</param>
            public bool Remove(string key)
            {
                return db.KeyDelete(key);
            }
    
            /// <summary>
            /// 清空
            /// </summary>
            //public void Clear()
            //{
            //    foreach (var endPoint in db.GetEndPoints())
            //    {
            //        var server = db.GetServer(endPoint);
            //        foreach (var key in server.Keys())
            //        {
            //            db.KeyDelete(key);
            //        }
            //    }
            //}
    
            /// <summary>
            /// 判断是否存在
            /// </summary>
            /// <param name="key">key值</param>
            public bool Exist(string key)
            {
                return db.KeyExists(key);
            }
        }
    }
    

      

    3、在startup.cs文件的ConfigureServices中注入Redis      

    RedisClient.redisClient.InitConnect(Configuration);
    

      

    4、调用测试

    RedisClient.redisClient.SetStringKey("key4", "value4", TimeSpan.FromHours(8));
    RedisClient.redisClient.Remove("key1");
    

      勿看他人拿高薪,且看闲时谁再拼

  • 相关阅读:
    mysql采坑笔记
    git常用操作
    vscode配置及插件
    atom之插件安装及相关
    xshell中操作服务器笔记
    js学习笔记之自调用函数、闭包、原型链
    dragover event 翻译
    拖放事件笔记
    关于clear:both;后有固定高度的原因及解决方法
    weex打包android apk采坑之旅(windows)
  • 原文地址:https://www.cnblogs.com/BoKeYuan259/p/13521877.html
Copyright © 2011-2022 走看看