推荐使用 StackExchange.Redis 客户端库操作 Redis,它线程安全、支持连接池与自动重连,应通过单例 ConnectionMultiplexer 管理连接,并用异步 IDatabase 方法操作数据,配合 JSON 序列化存取对象。

用 C# 操作 Redis,最主流、高性能、推荐的方式就是使用 StackExchange.Redis 客户端库。它线程安全、支持连接池、自动重连(需配置)、支持同步/异步操作,是 .NET 生态中 Redis 的事实标准。
安装 StackExchange.Redis
通过 NuGet 安装:
- 在 Visual Studio 的“包管理器控制台”中运行:
Install-Package StackExchange.Redis - 或使用 .NET CLI:
dotnet add package StackExchange.Redis
建立连接与获取数据库实例
StackExchange.Redis 使用 IConnectionMultiplexer 管理连接,它是线程安全的、应全局复用(单例),不要每次操作都新建。
- 推荐用懒加载或 DI 容器注册为单例
- 连接字符串示例:
"localhost:6379,abortConnect=false,connectTimeout=5000" -
GetDatabase()返回IDatabase实例,用于执行具体命令(默认 db=0)
简单示例:
private static readonly LazyLazyConnection = new Lazy (() => ConnectionMultiplexer.Connect("localhost:6379")); public static ConnectionMultiplexer Connection => LazyConnection.Value;
95Shop仿醉品商城下载95Shop可以免费下载使用,是一款仿醉品商城网店系统,内置SEO优化,具有模块丰富、管理简洁直观,操作易用等特点,系统功能完整,运行速度较快,采用ASP.NET(C#)技术开发,配合SQL Serve2000数据库存储数据,运行环境为微软ASP.NET 2.0。95Shop官方网站定期开发新功能和维护升级。可以放心使用! 安装运行方法 1、下载软件压缩包; 2、将下载的软件压缩包解压缩,得到we
// 获取数据库(可指定 dbIndex) IDatabase db = Connection.GetDatabase(0);
常用数据类型操作(字符串、哈希、列表、集合等)
所有操作都通过 IDatabase 提供的方法完成,支持同步和异步(推荐异步)。
-
字符串(String):
await db.StringSetAsync("name", "Alice");string value = await db.StringGetAsync("name"); -
哈希(Hash):
await db.HashSetAsync("user:1001", new HashEntry[] { new("name", "Bob"), new("age", "28") });var values = await db.HashGetAllAsync("user:1001"); -
列表(List):
await db.ListRightPushAsync("tasks", "login");string first = await db.ListLeftPopAsync("tasks"); -
集合(Set):
await db.SetAddAsync("tags", "redis", "csharp");bool exists = await db.SetContainsAsync("tags", "redis"); -
有序集合(Sorted Set):
await db.SortedSetAddAsync("leaderboard", new SortedSetEntry("alice", 95.5));var top3 = await db.SortedSetRangeByRankAsync("leaderboard", 0, 2, Order.Descending);
进阶要点:序列化、异常处理与配置
StackExchange.Redis 默认只支持 byte[],存对象需自行序列化(如 JSON);同时注意连接状态和超时配置。
- 存对象建议用
System.Text.Json序列化:await db.StringSetAsync("user:1001", JsonSerializer.Serialize(user));User u = JsonSerializer.Deserialize(await db.StringGetAsync("user:1001")); - 监听连接事件可诊断问题:
Connection.ConnectionFailed += (sender, e) => Console.WriteLine(e.Exception); - 关键配置项:
abortConnect=false(启动失败不抛异常)connectRetry=3(重试次数)keepAlive=60(保活秒数)defaultDatabase=0(默认 DB)
基本上就这些。用好 ConnectionMultiplexer 单例 + 异步 IDatabase 操作 + 合理序列化,就能稳定高效地在 C# 中操作 Redis。










