• 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);
        }
    }
    
  • 相关阅读:
    接口自动化框架脚手架利用反射机制实现接口统一发起端
    Google开源依赖注入框架Guice指南
    浅谈依赖注入的实现
    MindStudio模型训练场景精度比对全流程和结果分析
    应用现代化产业联盟,正式成立
    OpenHarmony移植案例: build lite源码分析之hb命令__entry__.py
    开源遇上华为云——DataX for HuaweiCloud OBS
    想开发DAYU200,我教你
    动手实践丨使用华为云IoT边缘体验“边云协同”
    想会用synchronized锁,先掌握底层核心原理
  • 原文地址:https://www.cnblogs.com/timeddd/p/11117787.html
Copyright © 2020-2023  润新知