首頁>技術>

快取是一種狀態管理機制,通常用於提升你的應用程式效能,它很大程度上能夠減少一個請求對你係統資源的消耗。

Redis是一個開源的,高效能的,NoSql資料庫,它的速度非常快,而且所有的資料都是灌入到記憶體中,從記憶體中讀寫資料的效能開銷真的是微乎其微,值得一提的是 Redis 採用的是BSD license,說明你可以將它用於商業和非商業的用途。

Redis是什麼,我為什麼要用它?

Redis 是最流行的開源,NoSQL,基於記憶體的資料儲存,而且非常的是:它的資料儲存支援多個數據結構,eg:strings,hashes,sets,lists 等等,Redis內部也提供了對 複製分發 和 事務 的支援,同時在資料持久化方面也做的非常好。

使用 Redis Client Sdk

現在 redis 已經成功安裝到你的系統中了,接下來你需要一個 client sdk 去連線 redis server 來讀取資料,在下面的例子中,我會使用開源的 ServiceStack 這個sdk,接下來在 Visual Studio 中建立一個 Console 應用程式,然後透過 NuGet packkage manager 來安裝 ServiceStack.Redis

假定現在 ServiceStack.Redis 已經透過 NuGet 成功安裝,下面的兩個方法展示了連線 Redis server 來發送和讀取資料。

        private static bool Save(string host, string key, string value)        {            bool isSuccess = false;            using (RedisClient redisClient = new RedisClient(host))            {                if (redisClient.Get<string>(key) == null)                {                    isSuccess = redisClient.Set(key, value);                }            }            return isSuccess;        }        private static string Get(string host, string key)        {            using (RedisClient redisClient = new RedisClient(host))            {                return redisClient.Get<string>(key);            }        }

注意 RedisClient 的 Set 和 Get 方法是如何從 Redis 中傳送和讀取資料的,我準備留給你一件事情,你可以試著修改一下這兩個方法讓其支援泛型,這樣的話你的兩個方法就可以支援任何型別了,對吧。

接下來看一下如何在 Main 方法中呼叫,程式碼如下:

        static void Main(string[] args)        {            string host = "localhost";            string key = "IDG";            // Store data in the cache            bool success = Save(host, key, "Hello World!");            // Retrieve data from the cache using the key            Console.WriteLine("Data retrieved from Redis Cache: " + Get(host,key));            Console.Read();        }   

正如我之前所說,Redis的功能特別多,在後續的文章中,我會和大家一起討論Redis的高階特性,比如說:持久化,釋出訂閱,失敗轉移 等等,你也可以利用 RDB (單個壓縮檔案) 或者 AOF 的方式去持久化資料,那我應該選擇哪一種持久化呢? 你可以在 高效能,持久化,磁碟IO 這些方面綜合權衡一下。

11
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何在 Asp.Net Core 中處理 null 值