如何在 C# 中从 Redis 缓存中获取所有键值?
How to get all the keys values from Redis Cache in C#?
我有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));
}
异常:
the specified endpoint is not defined
你可以这样试试
IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
foreach (var key in server.Keys())
{
Console.WriteLine(key);
}
可以调用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));
}
}
我有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));
}
异常:
the specified endpoint is not defined
你可以这样试试
IServer server = Connection.GetServer("yourcache.redis.cache.windows....", 6380);
foreach (var key in server.Keys())
{
Console.WriteLine(key);
}
可以调用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));
}
}