我知道,为了获得Redis中所有键的列表,我必须使用键*
,但是有没有一种方法可以将所有键及其值一起输出?
几分钟的搜索没有产生任何结果。
另外,非常感谢您的回答,但我正在寻找一个本地解决方案。我可以自己编写一个函数,遍历键*
的所有输出。
我对bash解决方案进行了一些改进,以便使用更有效的扫描来代替键,并支持打印数组和哈希值。我的解决方案还打印出密钥名称。
redis_print.sh:
#!/bin/bash
# Default to '*' key pattern, meaning all redis keys in the namespace
REDIS_KEY_PATTERN="${REDIS_KEY_PATTERN:-*}"
for key in $(redis-cli --scan --pattern "$REDIS_KEY_PATTERN")
do
type=$(redis-cli type $key)
if [ $type = "list" ]
then
printf "$key => \n$(redis-cli lrange $key 0 -1 | sed 's/^/ /')\n"
elif [ $type = "hash" ]
then
printf "$key => \n$(redis-cli hgetall $key | sed 's/^/ /')\n"
else
printf "$key => $(redis-cli get $key)\n"
fi
done
注意:您可以通过删除redis_print的第一行来制定此脚本的一行代码。sh和命令:cat redis\u打印。sh | tr'\n';'|awk'$1=$1'
是的,您可以使用下面的bash脚本打印所有密钥,
for key in $(redis-cli -p 6379 keys \*);
do echo "Key : '$key'"
redis-cli -p 6379 GET $key;
done
其中,6379是redis运行的端口。
Redis命令文档不包含用于获取多个键的键和值的本机命令。
最自然的方法是使用scriptload
命令或EVAL
命令将lua脚本加载到redis中。
一种解决方法是使用一些bash魔法,像这样:
echo 'keys YOURKEY*' | redis-cli | sed 's/^/get /' | redis-cli
这将输出以您的密钥开头的所有密钥的数据
请注意,keys命令是一种阻塞操作,应小心使用。
问题内容: 我将数据存储在Redis中。我将它存储在GUID,createday和它的大小中。 因此,我定义以下内容: 我希望查看我的数据库中的所有文件。因此,我尝试以下操作: 但是res是。我该怎么做? 问题答案: 返回存储在key处的哈希的所有字段和值,您不能指定掩码: http //redis.io/commands/hgetall 您可以调用获取符合条件的所有键的列表,然后循环获取所有值。
问题内容: 这是我的配置: 回波用于测试。我隐藏了IP。 我正在尝试通过NGiNX从Redis获取会话数据。这就是为什么我安装HttpRedis的原因。 我不了解的是如何从Redis获取数据,然后将其放入变量中。所以我可以随便使用它。 问题答案: 使用NGiNX-Eval-Module:https : //github.com/vkholodkov/nginx-eval- module 这是您的操
问题内容: 我遇到了这个问题,我不知道需要迭代其实际值的实际类型。 任何想法如何从enumValue中提取其可能的值? 问题答案:
问题内容: 我正在使用带有Node.js的Redis数据库。使用 我存储JSON字符串化作业。 现在,我要遍历所有作业,并同时检索作业ID和字符串化的作业。 我试过了, 但是只检索了键。 我试过了, 但我不知道如何从obj检索键和值。 任何帮助都将不胜感激,因为我被困住了。 问题答案: 这就是它的工作方式。以下代码中的id是记录ID。
问题内容: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 是否有用于获取数据库中所有集合的命令?其他数据类型(哈希,列表,排序集)又如何呢? http://redis.io/topics/data-types 问题答案: 我知道KEYS命令,但这仅返回键(我猜所有的字符串类型都是String),并且显然不认为集合是键。 不管您的密钥是哪种数据类
假设我有以下代码: 是否有一种方法可以得到下面的数组?