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);
        }
    }
    
  • 相关阅读:
    Interview with BOA
    Java Main Differences between HashMap HashTable and ConcurrentHashMap
    Java Main Differences between Java and C++
    LeetCode 33. Search in Rotated Sorted Array
    LeetCode 154. Find Minimum in Rotated Sorted Array II
    LeetCode 153. Find Minimum in Rotated Sorted Array
    LeetCode 75. Sort Colors
    LeetCode 31. Next Permutation
    LeetCode 60. Permutation Sequence
    LeetCode 216. Combination Sum III
  • 原文地址:https://www.cnblogs.com/timeddd/p/11117787.html
Copyright © 2011-2022 走看看