zoukankan      html  css  js  c++  java
  • .net core Redis库 CSRedis

    由于servicestack.redis收费,基于有人说StackExchange.Redis 使用会出现一些问题比如会超时,

    找到了CSRedis这个库,很强大很实用。另外有兴趣的朋友还可以试试另一个支持Core的redis库NewLife.Redis

    nuget Install-Package CSRedisCore
    源码地址:https://github.com/2881099/csredis 经过了两年的洗礼,同胞们大可放心使用。
     
    1、增加了 CSRedisClient 现实集群与连接池管理,和 RedisHelper 静态类快速上手
    //普通模式
     
    var csredis = new CSRedis.CSRedisClient("127.0.0.1:6379,password=123,defaultDatabase=13,poolsize=50,ssl=false,writeBuffer=10240,prefix=key前辍");
     
    //集群模式
     
    var csredis = new CSRedis.CSRedisClient(null,
      "127.0.0.1:6371,password=123,defaultDatabase=11,poolsize=10,ssl=false,writeBuffer=10240,prefix=key前辍",
      "127.0.0.1:6372,password=123,defaultDatabase=12,poolsize=11,ssl=false,writeBuffer=10240,prefix=key前辍",
      "127.0.0.1:6373,password=123,defaultDatabase=13,poolsize=12,ssl=false,writeBuffer=10240,prefix=key前辍",
      "127.0.0.1:6374,password=123,defaultDatabase=14,poolsize=13,ssl=false,writeBuffer=10240,prefix=key前辍");
    //实现思路:根据key.GetHashCode() % 节点总数量,确定连向的节点
    //也可以自定义规则(第一个参数设置)
     
    //mvc分布式缓存注入 nuget Install-Package Caching.CSRedis
     
    //初始化 RedisHelper
    RedisHelper.Initialization(csredis,
      value => Newtonsoft.Json.JsonConvert.SerializeObject(value),
      deserialize: (data, type) => Newtonsoft.Json.JsonConvert.DeserializeObject(data, type));
    //注册mvc分布式缓存
    services.AddSingleton<IDistributedCache>(new Microsoft.Extensions.Caching.Redis.CSRedisCache(RedisHelper.Instance));
     
    //提示:CSRedis.CSRedisClient 单例模式够用了,强烈建议使用 RedisHelper 静态类
    RedisHelper.Set("test1""123123", 60);
    RedisHelper.Get("test1");
    //...函数名基本与 redis-cli 的命令相同
    //使用缓存壳效果
    var t1 = RedisHelper.CacheShell("test1", 10, () => Test.Select.WhereId(1).ToOne());
    var t2 = RedisHelper.CacheShell("test""1", 10, () => Test.Select.WhereId(1).ToOne());
    var t3 = RedisHelper.CacheShell("test"new [] { "1""2" }, 10, notCacheFields => new [] {
      ("1", Test.Select.WhereId(1).ToOne()),
      ("2", Test.Select.WhereId(2).ToOne())
    });
     
    //清空缓存
     
    using (var conn = RedisHelper.Instance.ClusterNodes.Values.First().GetConnection()) { conn.Client.FlushAll(); }
     

    来源:https://www.cnblogs.com/kellynic/p/9325816.html#commentform  

  • 相关阅读:
    PHP实现用户在线状态检测
    php面试题汇集2
    php 调用银联接口 【转载】
    【基础算法】基础算法【转载】
    下ue节点
    Python 字典 列表 嵌套 复杂排序大全
    Linux IO 监控与深入分析
    ELK之kibana的web报错[request] Data too large, data for [<agg [2]>] would be larger than limit of
    Elasticsearch聚合优化 | 聚合速度提升5倍
    elasticsearch bulk批量导入 大文件拆分
  • 原文地址:https://www.cnblogs.com/langhaoabcd/p/10446289.html
Copyright © 2011-2022 走看看