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);
    }
}
相关文章
相关标签/搜索