zoukankan      html  css  js  c++  java
  • Abp Vnext 替换Redis的实现为csredis

    Host项目安装csredis的nuget包和data protect包并

    移除 Microsoft.Extensions.Caching.StackExchangeRedis Microsoft.AspNetCore.DataProtection.StackExchangeRedis 

    添加

    Cacheing.CSRedis

    AspNetCore.DataProtection.CSRedis

    然后在xxModule.cs修改

    添加using

    using CSRedis;

    using Microsoft.Extensions.Caching.Distributed;

    在ConfigureService()中找到这段儿代码

    context.Services.AddStackExchangeRedisCache(options =>
    {
        options.Configuration = configuration["Redis:Configuration"];
    };

    if (!hostingEnvironment.IsDevelopment())
    {
      var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]);
      context.Services.AddDataProtection()
          .PersistKeysToStackExchangeRedis(redis, "XXX-DataProtection-Keys");
    }

    替换为

    var connection = new CSRedisClient(configuration["Redis:Configuration"]);
                context.Services.AddSingleton<IDistributedCache>(new Microsoft.Extensions.Caching.Redis.CSRedisCache(connection));
    RedisHelper.Initialization(connection);//如果需要使用csredis提供的redis原生功能则需要加此行来初始化csredis的单例
    if (!hostingEnvironment.IsDevelopment()) { context.Services .AddDataProtection() .PersistKeysToCSRedis(connection, "XXX-Protection-Keys"); }

    PS:连接串如果有密码或者更改databaseId的话需要按照csredis的规则来,也就是原始的redis连接串格

    "Redis": {

        "Configuration": "127.0.0.1:6379,password=123,defaultDatabase=13,prefix=my_"

    },

    如果是哨兵集群则需要在把上文中new CSRedisClient(configuration["Redis:Configuration"])改为new CSRedisClient(configuration["Redis:Configuration"], new []{ "192.169.1.10:26379", "192.169.1.11:26379", "192.169.1.12:26379"}),后边那三个是哨兵节点ip端口,也可以自己放入配置文件读取

     

  • 相关阅读:
    单选、复选框控制表格行高亮 JQuery
    java内存泄露处理的方法
    spring几种Dao支持配置
    遇见你,是我最美丽的意外
    JavaClassLoader的一些热运用
    CSS Sprites 图片整合技术
    关于前端工程师与其他岗位协作的想法
    JAVA断言使用
    dreamover 模板
    javascriptdom学习笔记
  • 原文地址:https://www.cnblogs.com/turingguo/p/AbpVnext_CSRedis.html
Copyright © 2011-2022 走看看