zoukankan      html  css  js  c++  java
  • 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);
        }
    }
    
  • 相关阅读:
    防抖函数
    锁屏功能
    配置编译环境和线上环境之间的切换
    vue-router中的滚动行为
    axios的再次封装
    Anaconda 镜像配置
    Python 包管理工具 pip 与 conda
    Anaconda 安装与卸载
    VS Code 配置和使用
    解决 VS Code 无法使用Ctrl+C等快捷键
  • 原文地址:https://www.cnblogs.com/timeddd/p/11117787.html
Copyright © 2011-2022 走看看