redis - 在命令提示符下获取 Redis 键和值

标签 redis

我在 Redis 中保存了非常小的数据,下面的程序按预期工作,这将允许我下载所有 key 。

redis-cli keys * 

有什么方法可以得到keys+values *吗?

最佳答案

没有命令,但您可以编写脚本来执行此操作。

您需要为每个键执行一个“类型”命令:

> type <key>

并根据响应执行:

  • 对于“字符串”:get <key>
  • 对于“哈希”:hgetall <key>
  • 对于“列表”:lrange <key> 0 -1
  • 对于“集合”:smembers <key>
  • 对于“zset”:zrange <key> 0 -1 withscores

请记住,对于哈希和排序集,您将获得键/分数和值。

一个可能的 sh实现:

#!/bin/sh -eu
keys=`redis-cli keys '*'`
if [ "$keys" ]; then
    echo "$keys" | while IFS= read -r key; do
        type=`echo | redis-cli type "$key"`
        case "$type" in
            string) value=`echo | redis-cli get "$key"`;;
            hash) value=`echo | redis-cli hgetall "$key"`;;
            set) value=`echo | redis-cli smembers "$key"`;;
            list) value=`echo | redis-cli lrange "$key" 0 -1`;;
            zset) value=`echo | redis-cli zrange "$key" 0 -1 withscores`;;
        esac
        echo "> $key ($type):"
        echo "$value" | sed -E 's/^/    /'
    done
fi

但请注意:

Warning: consider KEYS as a command that should only be used in production environments with extreme care. It may ruin performance when it is executed against large databases. This command is intended for debugging and special operations, such as changing your keyspace layout.

https://redis.io/commands/keys

关于redis - 在命令提示符下获取 Redis 键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078018/

相关文章:

elasticsearch - 当使用 redis 作为 logstash 的输入时,获取 redis 列表比插入它慢?

redis - 带有redis的 Airflow celery -6小时后超时

node.js - 使 Node.js Redis 客户端的 .multi() 和 .batch() 在结果中返回错误以用于测试目的

go - 使用 Gorilla session 自定义后端有什么优势?

redis - redis-py 是否会自动使用 evalsha 来注册脚本?

scala - 在Databricks中将数据从CSV格式传输到Redis哈希格式

javascript - Redis:使用列表保存 Javascript 对象

docker - 为什么几个小时后Redis会删除我的数据?

mysql - 实现配额系统以限制基于 Web 的应用程序中的请求

python - 让 Redis 在 Cloud9 上以 Python 运行