如何在Shell中执行Redis命令

21

所有人: 我想在我的shell中操作redis,我的本地redis IP是127.0.0.1,端口是6379,我想在我的shell中插入数据到redis,但我不知道如何在自己的shell中操作redis,是否有像mysql -e一样直接在shell中执行的redis命令。

2个回答

41
请注意,Konstantin的回答更好。 只需像这样使用 redis-cliecho:
# Delete list of cores
echo DEL cores | redis-cli

# Add a new core to the list of cores
echo LPUSH cores 1 | redis-cli 

# Wait forever for a core to become available
echo BLPOP cores 0 | redis-cli

嗨,马克:为什么告诉我命令未找到。代码是:echo set 1 2 | redis-cli,但当我使用./redis-cli时,我可以连接到redis,echo set 1 2 | .redis-cli也不起作用。 - Yan Lincle
1
我猜 redis-cli 不在你的 PATH 环境变量中,那么你把它安装到哪里了?试着用像 find /usr -name "redis-cli" 这样的命令去找它的完整路径,然后使用完整路径,例如 echo ... | /usr/local/bin/redis-cli - Mark Setchell
2
redis-cli -h 10.162.49.104 PING - shenyan
@shenyan说得对。redis-cli有能力接受命令作为参数。不要让你的操作系统生成一个进程只是为了输入一个命令。建议给Konstantin的答案点赞。 - Eleomosynator
如何使用身份验证(用户名/密码)来完成此操作? - Mythos

16

直接调用命令比使用管道更简单:

> redis-cli -n 0 LPUSH mylist "hello"
(integer) 1

请确保您传递了-n选项,就像mysql的use <database>语句一样,它设置了使用的数据库(第一个索引为零)。当您从cli运行命令时,redis不会使用默认数据库。要获取具有某些键的数据库信息,请使用以下命令:

> INFO keyspace
db0:keys=4,expires=0,avg_ttl=0

更多选项在这里:https://redis.io/topics/rediscli


对于想要通过主机名与远程 Redis 主机通信的任何人:redis-cli -c -h <hostname> SADD mykey "text" - sriram
3
谢谢!还要确保在传递给redis命令的值周围添加引号。我曾经在键列表命令KEYS *上苦苦挣扎。通过在星号周围添加引号,我让它工作了:redis-cli -n 0 KEYS“*” - Martin Tovmassian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接