【问题标题】:How to get all the keys values from Redis Cache in C#?如何从 C# 中的 Redis 缓存中获取所有键值?
【发布时间】:2019-12-16 13:59:50
【问题描述】:

我有 redis 缓存,我在其中设置了几个键,现在我需要获取所有键及其值。似乎没有直接的方法可以得到这个。

我只能看到以键为参数的StringGet(string key) 方法。但是所有键都没有方法

编辑:

我已经绑定了下面的代码,但它在第 3 行给出了异常。

ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
IDatabase db = redis.GetDatabase();

var keys = redis.GetServer("localhost").Keys();

string[] keysArr = keys.Select(key => (string)key).ToArray();

foreach (string key in keysArr)
{
    Console.Write(db.StringGet(key));
}

例外:

指定的端点未定义

【问题讨论】:

    标签: c# redis stackexchange.redis


    【解决方案1】:

    你可以调用Keys方法来获取所有的key,记住你需要在Connect方法中传递allowAdmin=true"

    using (ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost:6379,allowAdmin=true"))
            {
                IDatabase db = redis.GetDatabase();
    
                var keys = redis.GetServer("localhost", 6379).Keys();
    
                string[] keysArr = keys.Select(key => (string)key).ToArray();
    
                foreach (string key in keysArr)
                {
                    Console.WriteLine(db.StringGet(key));
                }
            }
    

    【讨论】:

      【解决方案2】:

      你可以试试这个方法

      IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
      foreach (var key in server.Keys())
      {
         Console.WriteLine(key);
      }
      

      【讨论】:

      • 我已经试过这段代码了。它的例外。指定的端点未定义
      • 你能解释一下,代码中发生了什么,或者你只是试一试
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2013-10-21
      • 1970-01-01
      • 2017-08-13
      • 2015-08-24
      • 2016-08-20
      • 2014-03-10
      相关资源
      最近更新 更多