关于StackExchange.Redis的一些总结
NuGet包地址:
官网地址:
关于StackExchange.Redis的基本用法可以查看:
其中讲到了使用StackExchange.Redis来启用分布式锁,这在微服务架构中很有用。
还可以参考:
StackExchange.Redis - LockTake / LockRelease Usage
关于Redis分布式锁可以查看下面几篇文章:
redis 基于SETNX和EXPIRE的用法 实现redis 分布式锁
Redis分布式锁/Redis的setnx命令如何设置key的失效时间(同时操作setnx和expire)
那么下面我们给出一个示例(基于.NET Core控制台项目),来看看怎么使用StackExchange.Redis来进行Redis配置和数据存取:
using StackExchange.Redis; using System; namespace NetCoreRedis { class Program { static void Main(string[] args) { ConfigurationOptions configuration = new ConfigurationOptions(); configuration.ConnectTimeout = 5000;//设置建立连接到Redis服务器的超时时间为5000毫秒 configuration.SyncTimeout = 5000;//设置对Redis服务器进行同步操作的超时时间为5000毫秒 configuration.AsyncTimeout = 5000;//设置对Redis服务器进行异步操作的超时时间为5000毫秒 configuration.EndPoints.Add("192.168.1.105:6380");//设置Redis的IP地址和端口号 configuration.Password = "1qaz@WSX3edc$RFV";//设置连接Redis的密码 configuration.Ssl = true;//设置启用SSL安全加密传输Redis数据 //configuration.SslProtocols = System.Security.Authentication.SslProtocols.Tls;//还可以通过SslProtocols属性指定SSL具体用到的是什么协议,不过这个属性不是必须的 using (ConnectionMultiplexer connectionMultiplexer = ConnectionMultiplexer.Connect(configuration)) { var database = connectionMultiplexer.GetDatabase(0); //设置和获取字符串 RedisKey redisStringKey = new RedisKey("DemoStringKey"); RedisValue redisStringValue = new RedisValue(); redisStringValue = "DemoValue"; bool isSuccessful = database.StringSet(redisStringKey, redisStringValue, expiry: TimeSpan.FromSeconds(30), when: When.NotExists);//等于Redis命令setnx和expire的结合体,是原子性的。 Console.WriteLine(isSuccessful); string redisReturnStringValue = database.StringGet(redisStringKey); //设置和获取字节数组 RedisKey redisBytesKey = new RedisKey("DemoBytesKey"); RedisValue redisBytesValue = new RedisValue(); redisBytesValue = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 }; isSuccessful = database.StringSet(redisBytesKey, redisBytesValue, expiry: TimeSpan.FromSeconds(30), when: When.NotExists);//等于Redis命令setnx和expire的结合体,是原子性的。 Console.WriteLine(isSuccessful); byte[] redisReturnBytesValue = database.StringGet(redisBytesKey); } Console.WriteLine("Press any key to end..."); Console.ReadKey(); } } }
其中关于ConfigurationOptions的配置,可以查看:
https://stackexchange.github.io/StackExchange.Redis/Configuration.html
关于存取byte[]字节数组,可以查看:
How to store a byte array to StackExchange.Redis?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架