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);
        }
    }
    
  • 相关阅读:
    JDK内置工具使用(jps、jstack、jmap、jstat)
    解决mybatis嵌套查询使用PageHelper分页不准确
    MySQL变量的使用
    java lambda求和最值
    解决ROS中PLUGINLIB_DECLARE_CLASS错误
    由crt和key文件生成keystore文件
    转载从java进程里dump出类的class文件的小工具--dumpclass
    oracle数据库创建实例
    广告 Spring Boot整合Jasypt增强应用安全
    PostgreSQL10基础(4)插件安装(转载)
  • 原文地址:https://www.cnblogs.com/timeddd/p/11117787.html
Copyright © 2011-2022 走看看