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");
    //获取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}");
        }
    }
}

执行结果:

1535608290825

 

posted @ 2023-01-31 12:50  Seamless  阅读(416)  评论(0编辑  收藏  举报