C#怎么连接Redis数据库 C# StackExchange.Redis客户端的使用方法

幻夢星雲
发布: 2025-11-13 13:00:03
原创
610人浏览过
使用StackExchange.Redis连接Redis,需先安装NuGet包,再通过ConnectionMultiplexer建立连接并获取IDatabase实例进行操作。1. 安装:执行Install-Package StackExchange.Redis。2. 连接:配置ConfigurationOptions并调用Connect创建线程安全的ConnectionMultiplexer单例。3. 操作:利用IDatabase执行字符串、哈希、列表等数据操作。4. 最佳实践:推荐静态单例管理连接,监听事件处理重连,支持发布/订阅、事务和集群。示例中展示了基本读写及Pub/Sub功能,适用于大多数C#项目需求。

c#怎么连接redis数据库 c# stackexchange.redis客户端的使用方法

在C#中连接Redis数据库,最常用的方式是使用 StackExchange.Redis 客户端库。它是.NET平台下最流行、性能优异的Redis客户端,支持同步和异步操作,适用于各种应用场景。

1. 安装 StackExchange.Redis NuGet 包

在项目中使用前,需要先安装对应的NuGet包:

Install-Package StackExchange.Redis

可以通过 Visual Studio 的 NuGet 包管理器或 .NET CLI 完成安装。

2. 建立 Redis 连接

StackExchange.Redis 使用 ConnectionMultiplexer 类来管理与Redis服务器的连接。这个对象是线程安全的,建议在整个应用程序中只创建一次,重复使用。

示例代码:

using StackExchange.Redis; // 创建连接配置 var configuration = new ConfigurationOptions { EndPoints = { "localhost:6379" }, // Redis 地址 ConnectTimeout = 5000, // 连接超时(毫秒) SyncTimeout = 5000, // 同步操作超时 AbortOnConnectFail = false // 如果连接失败是否抛出异常 }; // 获取连接实例(推荐单例模式) ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(configuration); // 获取数据库对象(Redis支持多个数据库,db0-db15) IDatabase db = redis.GetDatabase(); // 默认使用 db0

3. 常用数据操作示例

通过 IDatabase 接口可以执行常见的Redis命令。

字符串操作(String)

// 设置值 db.StringSet("name", "Alice"); // 获取值 string name = db.StringGet("name"); Console.WriteLine(name); // 输出: Alice // 设置带过期时间的键 db.StringSet("token", "abc123", TimeSpan.FromMinutes(10));

哈希操作(Hash)

知我AI·PC客户端
知我AI·PC客户端

离线运行 AI 大模型,构建你的私有个人知识库,对话式提取文件知识,保证个人文件数据安全

知我AI·PC客户端 0
查看详情 知我AI·PC客户端
// 存储用户信息 db.HashSet("user:1001", new HashEntry[] { new HashEntry("name", "Bob"), new HashEntry("age", "25") }); // 获取所有字段 var userData = db.HashGetAll("user:1001"); foreach (var entry in userData) { Console.WriteLine($"{entry.Name}: {entry.Value}"); }

列表操作(List)

// 向列表左端插入元素 db.ListLeftPush("tasks", "task1"); db.ListLeftPush("tasks", "task2"); // 从右端弹出元素 string task = db.ListRightPop("tasks"); Console.WriteLine(task); // 输出: task1

发布/订阅(Pub/Sub)

// 订阅频道 ISubscriber sub = redis.GetSubscriber(); sub.Subscribe("chat", (channel, message) => { Console.WriteLine($"收到消息: {message}"); }); // 发布消息(可在另一个客户端或线程中) sub.Publish("chat", "Hello Redis!");

4. 连接管理与最佳实践

ConnectionMultiplexer 是重量级对象,应避免频繁创建和销毁。

  • 使用静态单例方式维护一个共享的 ConnectionMultiplexer 实例
  • 监听连接事件以处理断线重连
  • 生产环境建议配置哨兵或集群模式

简单单例模式示例:

public class RedisHelper { private static readonly Lazy _instance = new Lazy(() => ConnectionMultiplexer.Connect("localhost:6379")); public static ConnectionMultiplexer Instance => _instance.Value; public static IDatabase Db => Instance.GetDatabase(); }

之后在代码中直接使用:RedisHelper.Db.StringSet(...)

基本上就这些。StackExchange.Redis 功能强大,支持事务、脚本、管道等高级特性,适合大多数C#项目对接Redis的需求。

以上就是C#怎么连接Redis数据库 C# StackExchange.Redis客户端的使用方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号