Redis 是一個開源的使用 ANSI C語言編寫的支持網絡、可基於內存也可持久化的日誌型、Key-Value 數據庫。git
經常使用它來存儲緩存數據,能很是輕鬆的實現緩存過時刷新機制。github
多種語言均可以鏈接到 Redis 數據庫服務器,本文將推薦一個很是簡潔的 C# 鏈接 Redis 數據庫的開源項目。redis
一般,C# 使用 Redis 會推薦使用添加 NuGet 包 StackExchange.Redis 的方式來使用。數據庫
使用時代碼形式以下:緩存
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("127.0.0.1:6379,password=CeshiPassword"); IDatabase db = redis.GetDatabase(); string value = "name"; db.StringSet("mykey", value); Console.WriteLine(db.StringGet("mykey"));
我的以爲,其使用方式不夠直觀。
如 ConnectionMultiplexer 這個名稱不是可猜想的,甚至看到它也想不起它與 Redis 有什麼關係。而後,從最簡使用的角度,它還須要用戶瞭解到裏邊 Database 的概念。服務器
項目地址:https://github.com/ctstone/csredis網絡
其名稱接地氣,使用方便,形式以下。spa
using (var redis = new RedisClient("localhost")) { redis.Auth("password"); redis.Set("mykey", "name", 25); // 有效期25秒 Console.WriteLine(redis.Get("mykey")); }
這裏進行簡單的封裝,使得使用時只關心鍵與值,以及其有效時長,這樣同樣,普通的 token 緩存場景就能夠知足了。日誌
public class RedisHelper { private static RedisClient _RedisCli; private static RedisClient RedisCli { get { if (_RedisCli == null) { _RedisCli = new RedisClient("192.168.0.100"); _RedisCli.Auth("redispassword"); } return _RedisCli; } } /// <summary> /// 取得緩存值 /// </summary> /// <param name="key"></param> /// <returns></returns> public static string GetKey(string key) { return RedisCli.Get(key); } /// <summary> /// 保存值並設置有效期(second) /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="expireSeconds"></param> public static void SetKey(String key, String value, int expireSeconds) { RedisCli.Set(key, value, expireSeconds); } }