.NET Redis客户端SimpleRedis的使用

SimpleRedis是针对NewLife.Redis的封装,支持多种.NET版本,专注于大数据和消息队列的高性能处理。文章提供了通过New方式和IOC注入两种方法的使用说明,包括单客户端和多客户端模式,并介绍了如何实现消息队列功能。源码可在GitHub和Gitee上找到。
摘要由CSDN通过智能技术生成

一、项目说明

SimpleRedis基于新生命团队NewLife.Redis的封装,支持.NETCore3/.NET6/7。

NewLife.Redis 是一个Redis客户端组件,以高性能处理大数据实时计算为目标。

源码: GitHub - NewLifeX/NewLife.Redis: High performance redis client, support NETCore/. NET4. 0/. NET4. 5. It is specially optimized for big data and message queue. The average daily consumption of online single application is 10 billion. 高性能Redis客户端,支持.NETCore/.NET4.0/.NET4.5,为大数据与消息队列而特别优化,线上单应用日均100亿调用量
Nuget:NewLife.Redis
教程:分布式缓存NewLife.Redis

二、使用说明

2.1 通过New的方式安装使用

2.1.1 单客户端模式

using SimpleRedis;
NewLifeRedis redis = new NewLifeRedis("server=127.0.0.1:6379;password=Shiny123456;db=4");
//普通操作
redis.Set("test", "1");
Console.WriteLine(redis.Get<string>("test"));
//列表
redis.ListAdd("listtest", 1);
redis.ListGetAll<string>("listtest");
//SortedSet
redis.SortedSetAdd("sortsettest", "1", 1.0);
redis.SortedSetIncrement("sortsettest", "1", 1.0);
//set
redis.SetAdd("settest", "2");
//哈希
redis.HashAdd("hashtest", "1", "2");
redis.HashGet<string>("hashtest", new string[] { "1" });
//队列操作
//方式1
var queue = redis.GetRedisQueue<string>("queue");
queue.Add("test");
var data = queue.Take(1);
//方式2
redis.AddQueue("queue", "1");
redis.GetQueueOne<string>("queue");

2.1.2 多客户端模式

var redisCacheManager = new RedisCacheManager(new List<RedisConfig> { new RedisConfig { Name = "1", ConnectionString = "xxx" } });
redisCacheManager.AddRedis(new RedisConfig { Name = "2", ConnectionString = "xx" });
//支持动态添加和删除
redisCacheManager.AddRedis(new RedisConfig { Name = "test", ConnectionString = "xx" });
redisCacheManager.RemoveRedis("test");
var redis = redisCacheManager.GetRedis("2");
//普通操作
redis.Set("test", "1");
Console.WriteLine(redis.Get<string>("test"));
//列表
redis.ListAdd("listtest", 1);
redis.ListGetAll<string>("listtest");
//SortedSet
redis.SortedSetAdd("sortsettest", "1", 1.0);
redis.SortedSetIncrement("sortsettest", "1", 1.0);
//set
redis.SetAdd("settest", "2");
//哈希
redis.HashAdd("hashtest", "1", "2");
redis.HashGet<string>("hashtest", new string[] { "1" });
//队列操作
//方式1
var queue = redis.GetRedisQueue<string>("queue");
queue.Add("test");
var data = queue.Take(1);
//方式2
redis.AddQueue("queue", "1");
redis.GetQueueOne<string>("queue");

2.2 通过IOC注入(推荐)

2.2.1 单客户端注入

ConfigureServices里注册组件

//默认读取配置文件:ConnectionStrings:Redis
services.AddNewLifeRedis();
//指定链接字符串
services.AddNewLifeRedis("server=127.0.0.1:6379;password=xxx;db=4");

构造函数里注入INewLifeRedis

private readonly INewLifeRedis newLifeRedis;
public Worker(ILogger<Worker> logger, INewLifeRedis newLifeRedis)
{
  _logger = logger;
  this.newLifeRedis = newLifeRedis;
  newLifeRedis.Set("test", "2");
}

2.2.2 多客户端注入

配置文件不能再是字符串格式而要改成下面格式

"ConnectionStrings": {
    "Redis": [
      {
        "Name": "1",
        "ConnectionString": "server=127.0.0.1:6379;password=123456;db=4"
      },
      {
        "Name": "2",
        "ConnectionString": "server=127.0.0.1:6379;password=123456;db=5"
      }
    ]
  },

ConfigureServices里注册组件

services.AddRedisCacheManager();
services.AddRedisCacheManager(hostContext.Configuration, "xxx");//第二种

构造函数里注入IRedisCacheManager

private readonly ISimpleRedis newLifeRedis;
public Worker(ILogger<Worker> logger, IRedisCacheManager redisCacheManager)
{
 _logger = logger;
newLifeRedis = redisCacheManager.GetRedis("1");
newLifeRedis.Set("TEST", "test");
newLifeRedis = redisCacheManager.GetRedis("2");
newLifeRedis.Set("TEST", "test");
//支持动态添加和删除
redisCacheManager.AddRedis(new RedisConfig { Name = "test", ConnectionString = "xx" });
redisCacheManager.RemoveRedis("test");
}

三、实现消息队列

详情可以看我的这篇文章:.Net大杀器之基于Newlife.Redis的可重复消费+共享订阅队列来替换第三方MQ

四、源码地址

Github:https://github.com/zxzyjs/SimpleRedisicon-default.png?t=N2N8https://github.com/zxzyjs/SimpleRedis

Gitee:https://gitee.com/zxzyjs/SimpleRedis.giticon-default.png?t=N2N8https://gitee.com/zxzyjs/SimpleRedis.git

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值