雪花

三、Signalr WebApi客服-客户链接+Redis(集群扩展)

一、扩展Redis集群

1、安装CSRedisCore 3.3.0

2、访问

 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;

// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

namespace DemoCore.Controllers
{
    [Route("api/[controller]/[action]")]  //Api控制器
    [ApiController]
    public class HomeController : Controller
    {
        private ILogger _logger;
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        // GET: api/<controller>
        [HttpGet]
        public IEnumerable<string> Get()
        {
            var csredis = new CSRedis.CSRedisClient(null,
            "127.0.0.1:6379,defaultDatabase=11,poolsize=10,ssl=false,writeBuffer=10240,prefix=btkey_",
            "120.79.21.96:6379,defaultDatabase=14,poolsize=13,ssl=false,writeBuffer=10240,prefix=key_");
            //实现思路:根据key.GetHashCode() % 节点总数量,确定连向的节点
            //也可以自定义规则(第一个参数设置)
            //初始化 RedisHelper
            RedisHelper.Initialization(csredis);
            RedisHelper.Set("name1", "祝雷1");//设置值。默认永不过期
            RedisHelper.Set("name2", "祝雷2");//设置值。默认永不过期
            RedisHelper.Set("name1", "祝雷11");//设置值。默认永不过期
            RedisHelper.Set("name2", "祝雷22");//设置值。默认永不过期
            RedisHelper.Set("name", "祝雷");//设置值。默认永不过期

            string str=RedisHelper.Get("name");//取值

            _logger.LogInformation("测试一下,不要紧张!");
            return new string[] { "value1", "value2" };
        }
    }
}

 二、优化

1、appsettings.json

代码如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "CsRedisConfig": {
    "ZoneConnectString": [
      "127.0.0.1:6379,defaultDatabase=11,poolsize=10,ssl=false,writeBuffer=10240,prefix=btkey_",
      "120.79.21.96:6379,defaultDatabase=14,poolsize=13,ssl=false,writeBuffer=10240,prefix=key_"
    ]
  }
}

2、Startup.cs文件

 代码如下:

            #region redis分区模式
            //使用appsettings.json,分区模式
            string[] zoneValues = Configuration.GetSection("CsRedisConfig:ZoneConnectString").Get<string[]>();
            CSRedisClient csredis = new CSRedis.CSRedisClient(null, zoneValues);
            //初始化 RedisHelper
            RedisHelper.Initialization(csredis);
            #endregion

3、使用方式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;

// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

namespace DemoCore.Controllers
{
    [Route("api/[controller]/[action]")]  //Api控制器
    [ApiController]
    public class HomeController : Controller
    {
        private ILogger _logger;
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }
        // GET: api/<controller>
        [HttpGet]
        public IEnumerable<string> Get()
        {
            RedisHelper.Set("name1", "祝雷1");//设置值。默认永不过期
            RedisHelper.Set("name2", "祝雷2");//设置值。默认永不过期
            RedisHelper.Set("name1", "祝雷11");//设置值。默认永不过期
            RedisHelper.Set("name2", "祝雷22");//设置值。默认永不过期
            RedisHelper.Set("name", "祝雷");//设置值。默认永不过期

            string str=RedisHelper.Get("name");//取值

            _logger.LogInformation("测试一下,不要紧张!");
            return new string[] { "value1", "value2" };
        }
    }
}

 

posted @ 2019-12-30 14:00  十色  阅读(660)  评论(0编辑  收藏  举报