最主流、高性能且推荐的C#操作Redis方式是StackExchange.Redis客户端库,它支持异步/同步、连接池、自动重连等特性,需全局复用ConnectionMultiplexer实例并合理处理异常与重试。

用 C# 操作 Redis,最主流、高性能且推荐的方式就是使用 StackExchange.Redis 官方客户端库。它支持同步/异步、连接池、自动重连、分片、发布订阅等特性,是 .NET 生态中 Redis 的事实标准。
在项目中通过 NuGet 安装:
dotnet add package StackExchange.Redis
安装后引用命名空间:using StackExchange.Redis;
StackExchange.Redis 使用懒连接 + 连接池模式,建议全局复用一个 ConnectionMultiplexer 实例(线程安全),再从中获取 IDatabase 来执行命令。
"localhost:6379,abortConnect=false,connectTimeout=5000,syncTimeout=5000"
abortConnect=false 表示启动失败不抛异常,便于后续重连简单初始化示例:
private static readonly Lazy<ConnectionMultiplexer> LazyConnection = new(() =>
{
var config = ConfigurationOptions.Parse("localhost:6379");
config.AbortOnConnectFail = false;
return ConnectionMultiplexer.Connect(config);
});
<p>public static ConnectionMultiplexer Connection => LazyConnection.Value;</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/xiazai/code/10503">
<img src="https://img.php.cn/upload/webcode/000/000/004/176243220273825.jpg" alt="NetShop网店系统">
</a>
<div class="aritcle_card_info">
<a href="/xiazai/code/10503">NetShop网店系统</a>
<p>NetShop软件特点介绍: 1、使用ASP.Net(c#)2.0、多层结构开发 2、前台设计不采用任何.NET内置控件读取数据,完全标签化模板处理,加快读取速度3、安全的数据添加删除读取操作,利用存储过程模式彻底防制SQL注入式攻击4、前台架构DIV+CSS兼容IE6,IE7,FF等,有利于搜索引挚收录5、后台内置强大的功能,整合多家网店系统的功能,加以优化。6、支持三种类型的数据库:Acces</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="NetShop网店系统">
<span>0</span>
</div>
</div>
<a href="/xiazai/code/10503" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="NetShop网店系统">
</a>
</div>
<p>// 获取数据库(默认 db0)
public static IDatabase Db => Connection.GetDatabase();
IDatabase 提供了丰富的方法,支持同步和异步(带 Async 后缀)调用:
Db.StringSet("key", "value")、Db.StringGet("key")
Db.HashSet("user:1001", new HashEntry[] { new("name", "Tom"), new("age", "25") }),Db.HashGetAll("user:1001")
Db.ListLeftPush("mylist", "item1")、Db.ListRange("mylist", 0, -1)
Db.SetAdd("tags", "csharp", "redis")、Db.SetMembers("tags")
Db.StringSet("key", "val", TimeSpan.FromMinutes(10))
Redis 连接可能因网络波动、服务重启而中断。StackExchange.Redis 会自动尝试重连,但需注意:
ConnectionMultiplexer.IsConnected 或监听 ConnectionFailed / ConnectionRestored 事件RedisConnectionException)Task,记得 await;同步方法在高并发下可能阻塞线程,生产环境优先用异步示例:安全读取字符串值
try
{
var value = await Db.StringGetAsync("mykey");
if (value.HasValue) Console.WriteLine(value);
}
catch (RedisConnectionException ex)
{
// 记录日志,必要时触发告警
Console.WriteLine($"Redis 连接异常: {ex.Message}");
}
基本上就这些。掌握连接管理、数据操作和异常应对,就能稳定高效地在 C# 中使用 Redis。不需要额外封装底层协议,StackExchange.Redis 已足够健壮和易用。
以上就是C#如何操作Redis数据库 C# StackExchange.Redis使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号