關於StackExchange.Redis的一些總結


NuGet包地址:

StackExchange.Redis

官網地址:

StackExchange.Redis

 

關於StackExchange.Redis的基本用法可以查看:

C# StackExchange.Redis 用法總結

其中講到了使用StackExchange.Redis來啟用分布式鎖,這在微服務架構中很有用。

還可以參考:

StackExchange.Redis - LockTake / LockRelease Usage

 

關於Redis分布式鎖可以查看下面幾篇文章:

Redis分布式鎖的正確實現方式(Java版)

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?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM