欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 中使用 Redis 简单存储

程序员文章站 2022-08-29 19:07:57
Redis 是一个开源的使用 ANSI C语言编写的支持网络、可基于内存也可持久化的日志型、Key Value 数据库。 常用它来存储缓存数据,能非常轻松的实现缓存过期刷新机制。 多种语言都可以连接到 Redis 数据库服务器,本文将推荐一个非常简洁的 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

项目地址:

其名称接地气,使用方便,形式如下。

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