dot pairs 点_DotNetCore三大Redis客户端对比和使用心得

本文介绍了.NET Core开发中常用的三个Redis客户端:StackExchange.Redis、Microsoft.Extensions.Caching.StackExchangeRedis和CSRedisCore。StackExchange.Redis以高性能和全面功能著称,但不支持'blocking pops';Microsoft.Extensions.Caching.StackExchangeRedis专注于缓存特性,提供基于IDistributedCache的接口;CSRedisCore则功能灵活,支持原生Redis命令,包括'blocking pops'。文章还提到了如何在不同场景下选择合适的客户端。
摘要由CSDN通过智能技术生成

前言

稍微复杂一点的互联网项目,技术选型都会涉及Redis,.NetCore的生态越发完善,支持.NetCore的Redis客户端越来越多,

下面三款常见的Redis客户端,相信大家平时或多或少用到一些,结合三款客户端的使用经历,有些心得体会。

先比较宏观的背景:

使用心得

三款客户端Redis支持的连接字符串配置基本相同

'connectionstrings': {

'redis': 'localhost:6379,password=abcdef,connectTimeout=5000,writeBuffer=40960'

}

1. StackExchange.Redis

定位是高性能、通用的Redis .Net客户端;方便地应用Redis全功能;支持Redis Cluster高性能的核心在于:多路复用连接(允许有效使用来自多个调用线程的共享连接), 服务器端操作使用ConnectionMultiplexer类ConnectionMultiplexer redis = ConnectionMultiplexer.Connect('server1:6379,server2:6379');

// 日常应用的核心类库是IDatabase

IDatabase db = redis.GetDatabase();

// 支持Pub/Sub

ISubscriber sub = redis.GetSubscriber();

sub.Subscribe('messages', (channel, message) => {

Console.WriteLine((string)message);

});

---

sub.Publish('messages', 'hello');也正是因为多路复用,StackExchange.Redis唯一不支持的Redis特性是 'blocking pops',这个特性是RedisMQ的关键理论。如果你需要blocking pops, StackExchange.Redis官方推荐使用pub/sub模型模拟实现。日常操作API请关注IDatabase接口,支持异步方法,这里我对【客户端操作Redis尽量不要使用异步方法】的说法不敢苟同,对于异步方法我认为还是遵守微软最佳实践:对于IO密集的操作,能使用异步尽量使用异步

// 对应redis自增api:DECR mykey

_redisDB0.StringDecrementAsync('ProfileUsageCap', (double

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值