问题标签 [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.
json - 将文件中的 json 值设置为 redis
我有一个 bash.sh 脚本:
config.json 在哪里:
当我运行它时,我得到:
ERR 未知命令 '}'
如何从 json 文件中正确设置 json 值?
ruby - 如何从redis集群节点清除重定向键
我遇到了一个有趣的(不是说非常烦人的)问题。我对 Redis 还很陌生,但我知道如何操作基础知识。
基本上我有一个有 3 个主服务器的集群,每个主服务器有 2 个从服务器,每个服务器跨三台服务器。
我有一堆普通的密钥,我尝试根据所有服务器上的模式清理所有密钥,所以我在主节点上运行了这样的东西:
现在这很好用,看起来所有的键都被删除了,但是,当我KEYS 'pattern:*'
在每台服务器上再次运行该命令时,属于的键master 1
出现在master 2
. 如果我尝试访问密钥,get <key>
我会正确收到moved
通知,并且如果我使用-c
以下参数执行相同操作,我会正确重定向并收到nil
回复。
我已经尝试过使用 lua 和 ruby 脚本来做同样的事情,scan
但是两者都在最初没有键的节点上输出应该删除的键。
有什么方法可以永久删除这些密钥,这样我就可以获得可靠的计数/证据证明它们已经消失了?
redis - 如何在 Redis 服务器中查找 redis 消息的来源 [IP] 列表
我的 Redis 服务器实例处理多个发布者。如何找到在特定时间限制内在 Redis 服务器中发布消息的源 [IP] 列表?
redis - 将新服务器添加到 Redis 集群
我刚刚建立了一个Redis 集群,它工作正常。结构如下:
我想知道将一个全新的服务器添加到这个集群的最佳实践是什么。
当然,我可以通过./redis-trib.rb add-node
. 有通用的方法吗?
caching - 如何从 redis-cli repl 中删除 Redis 匹配模式中的所有键?
我正在尝试删除一堆与前缀匹配的键redis-cli
。
我一直在研究如何在线执行此操作,我看到的最常见建议是直接从命令行执行,如下所示:
$ redis-cli [options] KEYS "prefix:*" | xargs redis-cli [options] DEL
但是,我更愿意在工具内redis-cli
执行此操作,这样每次我想删除与模式匹配的键时,我都不必在 cli 命令中传递主机名、端口和身份验证参数。到目前为止,我已经尝试过:
DEL "prefix:*"
DEL KEYS prefix:*
DEL KEYS "prefix:*"
KEYS "prefix:*" | DEL
KEYS "prefix:*" DEL
有没有办法从工具中删除前缀下的所有键redis-cli
?命令行是实现此目的的唯一方法吗?
如果您希望我澄清更多,请随时发表评论。
memory - 获取内存中的redis键值大小
我正在尝试获取键值的大小,或者只是一个键,或者只是一个 redis 中的值。
如果要写入磁盘,使用debug object key
命令返回键值的序列化大小,而不是它在内存中使用的实际字节数。
这可以通过检查源代码来确认(基于此Redis: Show database size/size for keys)
https://github.com/antirez/redis/blob/4082c38a60eedd524c78ef48c1b241105f4ddc50/src/debug.c#L337-L343
https://github.com/antirez/redis/blob/4082c38a60eedd524c78ef48c1b241105f4ddc50/src/rdb.c#L663-L671
查看源代码:
并通过以下方式确认redis-cli
:
所有不同的 CLI 工具都在报告对象的序列化大小,而不是内存大小,这是有趣且重要的一个。
memory - 对象的 Redis 编码和大小影响
当我将一些对象写入 redis 时,我可以获得不同的内存使用统计信息。我想了解这是如何发生的。
简单的例子:
以及每次的编码(作为embstr):
更复杂的值(带数字的字符串)
和一个大的 JSON 字符串(然后是消息打包),编码是“原始的”
redis - 配置获取 * 在 redis 3.2.8 中不起作用
但是,https ://redis.io/commands/config-get 说该命令从 redis 2.0 开始可用。我的 redis_version : 3.2.8
PS我刚开始学习redis。
redis - 如果slave还没有master key,Redis集群是否重定向到master?在 CLIENT CLUSTER && READONLY 模式下
我只是想知道这个上下文。
在 Redis Cluster 中,redis-cli(start cluster mode, like redis-cli -c) 请求 key 到从 redis-cli 与 redis 连接的从属设备 READONLY 模式。
如果slave没有master key的key(也就是说还没有同步),那么redis-cli集群模式可以重定向到有key的master吗?还是redis集群响应“(nil)”?