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  

  • 相关阅读:
    Apache开启Rewrite环境
    php 写入和读取序列化的cookie
    discuzx 制作单页面
    php 操作postgresql
    已安装php动态安装pdo_mysql
    PHP 异步调用 后台调用 持续执行 断开连接/浏览器
    ssh配置文件详解
    gdb 调试中No symbol in current context 故障定位
    Linking fails : relocation truncated to fit: R_X86_程序占用内存大于2GB所导致的问题
    谨慎使用单精度/双精度数值类型
  • 原文地址:https://www.cnblogs.com/langhaoabcd/p/10446289.html
Copyright © 2011-2022 走看看