Redis 遍历指定格式的所有key
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");//获取dbvar db = conn.GetDatabase(1);//遍历集群内服务器foreach (var endPoint in conn.GetEndPoints()){//获取指定服务器var server = conn.GetServer(endPoint);//在指定服务器上使用 keys 或者 scan 命令来遍历keyforeach (var key in server.Keys(1,"test.*")){//获取key对于的值var val = db.StringGet(key);Console.WriteLine($"key: {key}, value: {val}");}}
}
大家有其他方法,可以在评论区留言,一起学习。