标签: redis-cli

Redis命令获取所有可用密钥?

是否有Redis命令用于获取数据库中的所有密钥?我看到一些python-redis库获取它们.但是想知道redis-client是否有可能.

redis redis-cli redis-commands

470
推荐指数
10
解决办法
37万
查看次数

Redis Pubsub和消息队列

我的整体问题是:使用Redis for PubSub,当发布者将消息推送到某个频道的速度超过订阅者能够阅读它们时,消息会发生什么变化?

例如,假设我有:

  • 一个简单的发布者以2 msg/sec的速率发布消息.
  • 一个简单的用户以1 msg/sec的速率读取消息.

我天真的假设是订阅者只会看到50%的消息发布到Redis上.为了测试这个理论,我写了两个脚本:

pub.py

queue = redis.StrictRedis(host='localhost', port=6379, db=0)
channel = queue.pubsub()

for i in range(10): 
    queue.publish("test", i)
    time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)

sub.py

r = redis.StrictRedis(host='localhost', port=6379, db=0)
p = r.pubsub()
p.subscribe('test')

while True:
    message = p.get_message()
    if message:
        print "Subscriber: %s" % message['data']
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

结果

  • 当我先跑sub.py,然后紧接着pub.py,我发现sub.py实际上显示了所有的消息(1-10),一个接一个地延迟了1秒.我最初的假设是错误的,Redis正在排队消息.需要更多测试.
  • 当我先跑pub.py,然后在跑步前等了5秒sub.py,我发现sub.py只显示了消息的后半部分(5-10).我本来会假设这个,但鉴于我之前的结果,我会认为消息排队,这导致我得出以下结论......

结论

  • Redis服务器似乎为每个客户端为每个通道排队消息.
  • 只要客户端正在监听,它读取消息的速度并不重要.只要它已连接,消息将为该通道的该客户端保持排队.

剩下的问题

  • 这些结论有效吗?
  • 如果是这样,客户端/频道消息将保持排队多长时间?
  • 如果是,是否有redis-cli info命令查看排队的消息数(对于每个客户端/通道)?

python redis redis-cli

50
推荐指数
1
解决办法
3万
查看次数

如何使用redis-cli打印列表中的所有值而不知道列表的大小?

在redis-cli中,在不事先知道列表大小的情况下打印列表中所有值的命令是什么?我明白了lrange,但它需要命名起始索引和结束索引.

redis redis-cli

18
推荐指数
1
解决办法
1万
查看次数

我可以将redis-cli与连接URL一起使用吗?

psql通过向连接字符串提供它而不必在不同的参数中打破它,我习惯使用它,也就是说,

psql postgres://<username>:<password>@<host>:<port>
Run Code Online (Sandbox Code Playgroud)

例如,当我从Heroku获得这样的字符串时,这很有用.我可以做类似的事redis-cli吗?我想直接向它提供一个连接字符串,例如当我安装Redis插件时作为环境变量存储在Heroku上的连接字符串.那可能吗?我想要使​​用的语法示例:

redis-cli redis://<username>:<password>@<host>:<port>
Run Code Online (Sandbox Code Playgroud)

connection-string heroku redis redis-cli

14
推荐指数
2
解决办法
8898
查看次数

使用Redis-Cli了解延迟

我正在使用该redis-cli工具来观察redis-server延迟.这是一个例子:

ubuntu:~$ redis-cli --latency -h 127.0.0.1 -p 6379
min: 0, max: 15, avg: 0.12 (2839 samples)
Run Code Online (Sandbox Code Playgroud)

问题是,这些值究竟意味着什么?除了通过工具自己的帮助文档提供的内容之外,我很难找到相关文档.

redis redis-cli

11
推荐指数
1
解决办法
1万
查看次数

将Redis查询输出保存到文件

使用redis-cli连接到特定服务器:

redis-cli -h 10.1.xx.xx

select 1

然后只是获取一个关键功能的列表:

KEYS data_column*

这将在命令行上打印该列值的列表.但是,有很多值,我想将查询输出保存到文件.

一般来说,使用> file_name命令后工作.但在这种情况下,它在redis服务器上不起作用,但是从命令行开始.如何保存这样的查询结果?

redis redis-cli

11
推荐指数
3
解决办法
2万
查看次数

如何解码 redis cli 或 shell 脚本中的值

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

我的密钥和 redis-cli 的输出

redis-cli MGET "0124" "0016"
1) "\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x00\x1d\x8e1\x0e\xc3@\b\x04?\x04\x0e8Q\x17\xa9\xf9\xdc\xdeY\x0b2\x91[\xfd>K\x99\xfd\xaf\xfc\x03\xeb-1\x10\xef\x00\x00\x00"
2) "\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x00\x1d\x8e1\x92\x031\b\x04?\x04k\x84\x10\xa0\xf8\x1;\xa8-7\xbb\xa2> \xc0n\xdc\xe1\xce\xdb\xbdk\xac\x81\x9a]Q*\x8ex\xa4\xe0\x99\xd5\xd1\xb3\x94w^\x9f]\xa7$2\xce;\xdcp\x9c\x9b\xff;\xff\x01\xb3\xcc\xd5H\xf0\x00\x00\x00"
Run Code Online (Sandbox Code Playgroud)

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

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

redis-cli -h GET "100" | gunzip
Run Code Online (Sandbox Code Playgroud)

错误:

   gzip: stdin: unexpected end of file
   gzip: stdin: decompression OK, trailing garbage ignored
Run Code Online (Sandbox Code Playgroud)

Redis-cli 代码:

#!/bin/sh
hostName=$1
port=$2
count=$3
cursor=-1
keys=""
recordCount=0
while [ $cursor -ne 0 ];
do
        if [ $cursor -eq -1 ]
        then
        cursor=0
    fi
    reply=`redis-cli -h $hostName -p $port …
Run Code Online (Sandbox Code Playgroud)

bash shell utf-8 redis redis-cli

10
推荐指数
1
解决办法
6454
查看次数

如何在redis中删除与特定模式匹配的键

如何使用redis-cli删除redis中与某个模式匹配的键.我想从以下列表中删除所有foo.

KEYS *

foo:1
foo:2
bar:1
foo:3
bar:2
foo:4
Run Code Online (Sandbox Code Playgroud)

redis redis-cli

9
推荐指数
2
解决办法
1万
查看次数

获取redis中存在的所有哈希值

我在 redis 缓存中有哈希值,例如:

Hash         Key    Value
hashme:1    Hello   World
hashme:2    Here    Iam
myhash:1    Next    One
Run Code Online (Sandbox Code Playgroud)

我的目标是将哈希作为 CLI 中的输出,例如:

hashme
myhash
Run Code Online (Sandbox Code Playgroud)

如果没有这样的选项,这也可以:

 hashme:1
 hashme:2
 myhash:1
Run Code Online (Sandbox Code Playgroud)

我在 Redis API 中没有找到任何相关的命令。

有什么建议 ?

redis redis-cli

9
推荐指数
3
解决办法
2万
查看次数

redis:使用 redis-cli 非交互方式创建集群

当尝试创建集群时,redis-cli如下所示

redis-cli --cluster create
Run Code Online (Sandbox Code Playgroud)

出现提示要求确认配置?

有没有办法编写此脚本(最好在 中ansible)并以非交互方式运行它?

我知道这个主题,但它涉及数据操作,这不是这个问题的范围。

redis redis-cli

9
推荐指数
2
解决办法
1万
查看次数