コード例 #1
0
        public override void OnConfigureServices(ServiceConfigurationContext context)
        {
            context.Services.ConfigureDynamicProxy(o => {
                //添加AOP的配置
            });
            var RedisConfiguration = context.Configuration.GetSection("Redis");

            context.Services.Configure <RedisOption>(RedisConfiguration);
            RedisOption redisOption = RedisConfiguration.Get <RedisOption>();

            if (redisOption != null && redisOption.Enable)
            {
                var options = new RedisCacheOptions
                {
                    InstanceName  = redisOption.InstanceName,
                    Configuration = redisOption.Connection
                };
                var redis = new RedisCacheHelper(options, redisOption.Database);
                context.Services.AddSingleton(redis);
                context.Services.AddSingleton <ICacheHelper>(redis);
            }
            else
            {
                context.Services.AddMemoryCache();
                context.Services.AddScoped <ICacheHelper, MemoryCacheHelper>();
            }
            context.Services.Configure <QiNiuOssModel>(context.Configuration.GetSection("QiNiuOss"));
            context.Services.AddScoped <QiniuCloud>();
        }
コード例 #2
0
 /// <summary>
 /// 初始化Db
 /// </summary>
 /// <param name="redisOption"></param>
 public static void Init(RedisOption redisOption /*ConnectionMultiplexer _redisConnectionMultiplexer, string _instanceName, */)
 {
     instanceName = redisOption.InstanceName;
     _redisOption = redisOption;
     _redis       = GetConnect();
     db           = GetDatabase();
 }
コード例 #3
0
 /// <summary>
 /// 配置变更
 /// </summary>
 private static void OnOptionChange()
 {
     Option = ConfigurationHelper.Get <RedisOption>("Redis") ?? new RedisOption();
     foreach (var client in Instances)
     {
         client.OnOptionChange(Option);
     }
 }
コード例 #4
0
ファイル: Cache.cs プロジェクト: floatingnumber/FastCore
 /// <summary>
 /// 配置缓存 
 /// </summary>
 /// <param name="option">Redis选项配置</param>
 /// <returns></returns>
 public static void Config(RedisOption option = null)
 {
     _redisValid = false;
     _memCache = new MemoryCache(true, 60, 0, true);
     if (option != null)
     {
         _redisCache = new RedisClient(option);
         CreateMonitorTask(); // 创建监控任务
     }
 }
コード例 #5
0
ファイル: RedisConfig.cs プロジェクト: hailang2ll/DMS
        static RedisConfig()
        {
            RedisOption option = AppConfig.RedisOption;

            if (option != null)
            {
                SysCustomKey          = option.RedisPrefixKey;
                RedisConnectionString = option.RedisConnectionString;
            }
            else
            {
                throw new Exception($"未加载redis.json文件");
            }
        }
コード例 #6
0
        public static IServiceCollection AddYaeHerCsRedisCache(this IServiceCollection services, Action <RedisOption> setupAction)
        {
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }
            if (setupAction == null)
            {
                throw new ArgumentNullException(nameof(setupAction));
            }

            var options = new RedisOption();

            services.AddOptions();
            services.Configure(setupAction);
            services.AddScoped <IRedisBinarySerializer, JsonRedisBinarySerializer>();
            services.AddScoped <IRedisClientProvider, CsRedisRedisClientProvider>();
            return(services);
        }
コード例 #7
0
 private async Task ExecuteRedisServiceAsync(RedisOption option)
 {
     Console.WriteLine("Start working with Redis...");
     if (!string.IsNullOrEmpty(option.Key))
     {
         if (option.Read)
         {
             Console.WriteLine(await _redisService.GetString(option.Key));
         }
         if (option.Write)
         {
             if (!string.IsNullOrEmpty(option.Value))
             {
                 Console.WriteLine(await _redisService.SetString(option.Key, option.Value));
             }
             else
             {
                 Console.WriteLine("Key is required.");
             }
         }
     }
 }
コード例 #8
0
        void TestRedis()
        {
            var redisOp = RedisOption.BuildRedisOption(ConnectString);

            AppendLine(tb_Output, $"Current RedisOption is {redisOp}");
            var  client = new RedisClient(redisOp);
            bool flag   = client.IsConnected;

            AppendLine(tb_Output, $"Current RedisClient is IsConnected {flag},If False While Try Auth With Password({redisOp.Password})");

            if (!flag && !string.IsNullOrEmpty(redisOp.Password))
            {
                try
                {
                    var authRet = client.Auth(redisOp.Password);
                    AppendLine(tb_Output, $"client.Auth({redisOp.Password})->{authRet} [Success]");
                    flag = true;
                }
                catch (Exception ex)
                {
                    AppendLine(tb_Output, $"client.Auth({redisOp.Password})-> [Failed] Handler Error {ex.Message}\r\n{ex}");
                    flag = false;
                }
            }

            if (!flag)
            {
                return;
            }

            if (redisOp.DefaultDb > 0)
            {
                try
                {
                    var selectRet = client.Select(redisOp.DefaultDb);
                    AppendLine(tb_Output, $"client.Select(db:{redisOp.DefaultDb})->{selectRet} [Success]");
                    flag = true;
                }
                catch (Exception ex)
                {
                    AppendLine(tb_Output, $"client.Select(db:{redisOp.DefaultDb}) [Failed] Handler Error {ex.Message}\r\n{ex}");
                    flag = false;
                }
            }
            if (!flag)
            {
                return;
            }
            try
            {
                var clientListRet = client.ClientList().Replace("\n", "\r\n");
                AppendLine(tb_Output, $"client.ClientList()->\r\n{clientListRet}  ");
            }
            catch (Exception ex)
            {
                AppendLine(tb_Output, $"client.ClientList() [Failed] Handler Error {ex.Message}\r\n{ex}");
            }
            try
            {
                var clientInfoRet = client.Info();
                AppendLine(tb_Output, $"client.Info()->\r\n{clientInfoRet}");
            }
            catch (Exception ex)
            {
                AppendLine(tb_Output, $"client.Info() [Failed] Handler Error {ex.Message}\r\n{ex}");
            }

            try
            {
                var quitRet = client.Quit();
                AppendLine(tb_Output, $"{ConnectString} Close Success ->{quitRet}");
                flag = true;
            }
            catch (Exception ex)
            {
                AppendLine(tb_Output, $"{ConnectString} Close Handler Error {ex.Message}\r\n{ex}");
                flag = false;
            }
        }
コード例 #9
0
ファイル: RedisHelper.cs プロジェクト: XXXXX34/OYW.OA
 public RedisHelper(IOptions <RedisOption> redisOption)
 {
     _redisOption = redisOption.Value;
 }
コード例 #10
0
 public CsRedisRedisClient(RedisOption redisOption, IRedisBinarySerializer redisBinarySerializer)
 {
     RedisOption = redisOption;
     Serializer  = redisBinarySerializer;
 }
コード例 #11
0
ファイル: Redis.cs プロジェクト: floatingnumber/FastCore
 /// <summary>
 /// 创建RedisClient
 /// </summary>
 /// <param name="option">配置</param>
 /// <returns></returns>
 public RedisClient Create(RedisOption option)
 {
     return(new RedisClient(option));
 }
コード例 #12
0
 public IRedisClient CreateClient(RedisOption redisCacheOption, IRedisBinarySerializer serializer)
 {
     return(new CsRedisRedisClient(redisCacheOption, serializer));
 }
コード例 #13
0
 public CsRedisRedisClientProvider(IRedisBinarySerializer redisBinarySerializer, IOptionsMonitor <RedisOption> optionsMonitor)
 {
     _redisBinarySerializer = redisBinarySerializer;
     _redisOption           = optionsMonitor.CurrentValue;
 }
コード例 #14
0
 /// <summary>
 /// 配置变更
 /// </summary>
 /// <param name="option"></param>
 public void OnOptionChange(RedisOption option)
 {
     Option  = option;
     _client = null;
     _clients.Clear();
 }