问题标签 [redis-cli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
908 浏览

redis - redis-cli 恢复一个大于 1GB 的转储密钥文件

我使用下面的命令行将密钥备份到文件中。文件大小为 1.5GB 。它是一个包含许多字段的哈希键。

redis-cli --raw 转储 mykey | 头 -c-1 > 我的文件

当我使用下面的命令行恢复密钥时,总是得到“对等连接重置”,我改为使用redis python客户端,得到与“写入套接字时出错104。对等连接重置”相同的错误。当我用一键更改为500MB的哈希文件进行相同操作时,它没有问题并成功恢复。我已将 redis 的最大内存设置为 9GB , RAM 为 14GB 。Redis 数据库大小为 1.5GB 。

猫我的文件 | redis-cli -x 恢复 mynewkey 0

我猜这可能是 1GB 输入缓冲区问题的 redis 限制。

有什么解决方案我可以在 redis 转储时减少转储文件的大小或增加输入缓冲区以允许文件超过 1GB 。

0 投票
2 回答
2519 浏览

docker - 如何在 docker 集群上运行 redis 集群?

语境

我正在尝试设置一个 redis 集群,以便它在 docker 集群上运行,以实现最大的自动修复。

更准确地说,我有一个 docker compose 文件,它定义了一个具有 3 个副本的服务。每个服务副本都有一个正在运行的 redis-server。然后我在每个副本中都有一个程序,它监听 docker 集群上的变化,并在满足条件时启动集群(每 3 个 redis 服务器相互认识)。

设置redis集群工作正常,集群形成,所有redis-servers通信良好,但redis-servers之间的通信是在docker集群内部。

问题

当我尝试从 docker 集群外部进行通信时,由于入口模式,我能够与 redis-server 通信,但是当我尝试添加信息(例如:set foo bar)并且客户端被移动到另一个 redis-服务器通信挂起并最终超时。

代码

这是 docker-compose 文件。

显示问题的命令流。

客户

Redis 服务器

客户

Redis 服务器

客户

有任何想法吗?我也尝试过制作我的一个代理/负载平衡器,但没有奏效。

谢谢!祝你今天过得愉快。

0 投票
1 回答
332 浏览

redis - 将 redis 客户端列表保存到文件

我正在调查 redis 和大量客户端(超过默认限制 10000)的问题。尽管该CLIENT LIST命令工作正常,但不能用它做很多事情。我想将它保存到一个文件中,以便运行一些指标(按 ip、时间等排序)。

不幸的是,redis-cli 不可能,因为会CLIENT LIST > ~/clients.txt抛出语法错误。
有没有办法保存客户列表供以后使用?

0 投票
1 回答
4531 浏览

redis - 无法在 127.0.0.1:0 连接到 Redis:连接被拒绝(使用 init 脚本关闭带 unix 套接字的 redis 服务器时)

我无法通过初始化脚本关闭我的 redis 服务器。当我这样做时,这会产生巨大的副作用,即挂起我的机器sudo reboot

我使用规范指南新安装了 redis ,将其配置为接受 unix 套接字上的连接,现在正尝试停止服务器,以便我可以恢复以前保存的 .rdb 转储。

但我不断收到以下信息:

我使用的命令是sudo /etc/init.d/redis-server stop. 请注意,shutdown连接到 后我仍然可以发出问题redis-cli -s /var/run/redis.sock,但我需要初始化脚本才能工作。

为什么redis不会关闭,我该如何解决这种情况?版本是Redis server v=4.0.2 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=8ddba2e6a24ce078


我很自然地port 0在配置文件中设置了unixsocket /var/run/redis.sockunixsocketperm 755.

此外,脚本文件的内容是:

注意REDISPORT=0,应该如此。目前,这并不真正支持停止和启动 redis 服务器。

0 投票
2 回答
853 浏览

java - 如何使用java获取redis db中的哈希列表?

有没有办法使用java程序来实现和实现这一点。

目前我指的是Redis网站。

0 投票
1 回答
1301 浏览

redis - 如何删除带有特殊字符的 Redis 键?

我无法ENV:NAMESPACE:?''?""-last从我们的 Redis 实例中删除该格式的键。它似乎是恶意添加的。

尽管它被返回redis-cli --scan,但我找不到任何方法来使用它来删除它redis-cli。在 shell 中转义或使用交互模式的每一个组合都无法找到密钥。

只是一些尝试包括:

任何人都知道使这项工作的方法或删除密钥的合理替代方法吗?

0 投票
2 回答
1365 浏览

bash - 如何优化redis cli脚本处理5000万个key

我在下面编写了 bash 脚本来处理 redis 键和值。我的 Redis 中有大约 45-50 百万个键。我想检索所有值并进行一些处理。为此,我的以下脚本需要 1 小时来处理 100 万个密钥。为了处理 5000 万个密钥,我不想这样做需要 50 个小时。我是 redis cli 的新手 - 有人可以帮我优化下面的脚本吗,或者如果有人可以提供一些建议,那就太好了。

我的 Redis 键值模式:

在下面的脚本中,我将传递我所有的键并计算每个键的记录量。例如 - 这个键 (123.item.media) 有 3 条记录,而这个键 (839.item.media) 有两条记录。

所以对于 bove 键和值,输出应该是: Total Count: 8

与我对所有 5000 万个密钥所做的方式相同——这花费了太多时间。

我的代码:

提前感谢您的帮助!

0 投票
0 回答
3735 浏览

bash - 如何在 redis cli 或 shell 脚本中解码值

我编写了 redis-cli bash 脚本来处理批量检索的所有键和值,但值没有按预期打印。当我在 redis-cli 中输入我的密钥时,它会使用所有特殊字符打印:

我的密钥和来自 redis-cli 的输出

有人可以帮助如何在 redis-cli 或 shell 脚本中解码这个值。我是 Redis 的新手 - 如果你能帮助我解决这个问题,我将不胜感激

我使用了 gunzip - 但出现以下错误:

错误:

Redis-cli 代码:

我的 Redis 键值模式:

0 投票
1 回答
1097 浏览

sorting - redis中的排序集与集合中的哈希

我们以这种方式使用 REPL redis-cli 在 redis 中创建了 3 个哈希:

我检查了在 redis 中创建的结构是否正常,这些都在那里:

现在我们以这种方式将哈希添加到集合中:

现在我们正在使用命令 SORT:

我们从来没有得到结果,集合中的哈希值为 null,我不明白为什么?

另一方面,如果我们创建哈希并以其他方式设置:

通过这种方式,命令 SORT 可以完美运行并将哈希插入集合中,但我不明白为什么在 redis 文档的基础上:

  1. 命令 multi only 标记事务块的开始。后续命令将排队等待使用 EXEC 进行原子执行。

  2. 当我使用键 key:key:key 创建哈希时,如果我使用 : 或,或 - 和 redis 中最重要的,我们不会根据文档创建结构树: https ://redis.io/topics /数据类型介绍

他们告诉您更好或更好的方法包括:或点,但他们不会告诉您他正在创建结构树。然后我不明白为什么当你在集合中添加哈希时,如果类型 Articulo1 而不是 redishop:items:Articulo1 是好的,但在其他情况下是错误的????事实上,当你输入 hgetall Articulo1 时,你会收到一个 null 但是当你输入 hgetall redishop:items:Articulo1 时,你会得到所有的 fels 一个值。这太奇怪了。

  1. exec 只执行所有的句子,因为这些原因应该是相同的,使它与 multi 或没有 multi。

请有关该主题的任何帮助或解释都会有很大帮助。提前致谢。

0 投票
1 回答
3864 浏览

redis - Does redis key size also include the data size for that key or just the key itself?

I'm trying to analyise the db size for redis db and tweak the storage of our data per a few articles such as https://davidcel.is/posts/the-story-of-my-redis-database/ and https://engineering.instagram.com/storing-hundreds-of-millions-of-simple-key-value-pairs-in-redis-1091ae80f74c

I've read documentation about "key sizes" (i.e. https://redis.io/commands/object)

and tried running various tools like:

and also tried to read the output from the redis-cli:

The size semantics are not clear to me.

Does the reported size reflect ONLY the size for the key itself, i.e. if my key is "abc" and the value is "value1" the reported size is for the "abc" portion? Also the same question in respects to complex data structures for that key such as a hash / array or list.

Trial and error doesn't seem to give me a clear result.