C# 中使用 Redis 簡單存儲

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 的概念。服務器

推薦一個簡潔版本 csredis

項目地址: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);
    }
}
相關文章
相關標籤/搜索