C# 中使用 Redis 簡單存儲


Redis 是一個開源的使用 ANSI C語言編寫的支持網絡、可基於內存也可持久化的日志型、Key-Value 數據庫。

常用它來存儲緩存數據,能非常輕松的實現緩存過期刷新機制。

多種語言都可以連接到 Redis 數據庫服務器,本文將推薦一個非常簡潔的 C# 連接 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

其名稱接地氣,使用方便,形式如下。

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);
    }
}


免責聲明!

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



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