Redis 作为当前最流行的内存型 NoSQL 数据库,被许多公司所使用,我们在实际使用中一般都会为 key 带上指定的前缀或者其他定义的格式,那么我们怎样能取出符合条件的所有Key呢?
这里我们借助StackExchange.Redis,在 StackExchange.Redis 对于 keys 和 scan 命令统一封装为了 IServer.Keys()
方法,它会自动根据Redis服务器版本来决定使用keys命令还是scan命令。
为了方便测试,我在 Redis 里面准备了四个以 test
为前缀的key,放在序号为1的db里面:
1.遍历所有前缀为 test 的key 代码如下:
static async Task Main(string[] args)
{
//创建连接
var conn = await ConnectionMultiplexer.ConnectAsync("192.168.10.110");
//获取db
var db = conn.GetDatabase(1);
//遍历集群内服务器
foreach (var endPoint in conn.GetEndPoints())
{
//获取指定服务器
var server = conn.GetServer(endPoint);
//在指定服务器上使用 keys 或者 scan 命令来遍历key
foreach (var key in server.Keys(1,"test.*"))
{
//获取key对于的值
var val = db.StringGet(key);
Console.WriteLine($"key: {key}, value: {val}");
}
}
}
执行结果:
标签:遍历,Redis,db,key,var,conn From: https://www.cnblogs.com/Seamless/p/17078616.html