在 Redis 中按位置获取值

问题描述

当从Redis获取所有key时,像这样:

redis.server.com:6379> keys *
1) "z13235jxby03knne1w1gucl5"

我不想手动复制长键来执行 get z13235jxby03knne1w1gucl5,而是想运行类似 get $(1)(伪代码)之类的东西来获取位置 1 处的值,作为 keys 命令的输出

这是否可行,如果不可行,是否有任何解决方法不必手动复制粘贴?

注意,我不想用脚本解决这个问题,我更喜欢复制粘贴

解决方法

在我的头顶上,我不知道从 cli 内部的方法。

但是,不管任何性能影响,您都可以将 cli 命令行连接在一起,但您必须从 shell

redis-cli --raw KEYS "*" | sed -n 1p | xargs redis-cli GET

其中 1 在:

sed -n 1p
是 KEYS 输出中的行号(从 1 开始的索引)。

但您仍然需要进行验证;就像确保索引与 KEYS 命令返回的键数一样,所有键都是简单的字符串类型;不是集合、哈希映射等...