zoukankan      html  css  js  c++  java
  • 三、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" };
            }
        }
    }
  • 相关阅读:
    Supervisor 管理进程,Cloud Insight 监控进程,完美!
    【灵魂拷问】你为什么要来学习Node.js呢?
    Web数据交互技术
    请求与上传文件,Session简介,Restful API,Nodemon
    Express服务器开发
    HTTP协议,到底是什么鬼?
    大学我都是自学走来的,这些私藏的实用工具/学习网站我贡献出来了,建议收藏精品推荐
    Node.js安装使用-VueCLI安装使用-工程化的Vue.js开发
    React开发环境准备
    【可视化】Vue基础
  • 原文地址:https://www.cnblogs.com/fger/p/12119396.html
Copyright © 2011-2022 走看看