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");
    

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

  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/BoKeYuan259/p/13521877.html
Copyright © 2011-2022 走看看