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?