【问题标题】:How to execute Redis commands remotely如何远程执行 Redis 命令
【发布时间】:2020-02-11 05:11:29
【问题描述】:

我在 IBM Cloud(IBM Cloud Databases for Redis)中有一个 redis 资源。我想在远程会话中执行 redis 命令,例如 'config set notify-keyspace-events $KExe'。

我使用下面的命令连接通过redli连接redis实例。

ibmcloud login --apikey <api key> -a https://cloud.ibm.com -g <resource group name> -r <region>
ibmcloud cdb deployment-connections <ibm redis instance name> -s --user admin --password <password>

我能够连接到 redis 实例,它的输出为 '连接到 4.0.10'。然后,我可以执行 redis 命令并键入“exit”以退出 redis 会话。 如何自动执行 redis 命令的这一部分,远程执行这些命令,然后退出 redis 会话?

【问题讨论】:

    标签: redis ibm-cloud


    【解决方案1】:

    我对redis不太熟悉,但我相信以下方法会起作用(至少它似乎对我有用)

    ibmcloud cdb deployment-connections redisdeleteme -s --user admin --password PASSWORD << 'EOF'
    config set notify-keyspace-events $KExe
    config get notify-keyspace-events
    EOF
    

    执行时如下所示:

    ~ $ ibmcloud cdb deployment-connections redisdeleteme -s --user admin --password PASSWORD << 'EOF'
    > config set notify-keyspace-events $KExe
    > config get notify-keyspace-events
    > EOF
    Connected to 4.0.10
    OK
     1) "notify-keyspace-events"
     2) "$xeKE"
    

    【讨论】:

      【解决方案2】:

      您可以从 Bash 命令行执行 Redis 命令:

      ./redis-cli -h XXX.XXX.XXX.XXX -p YYYY HMSET 'users' 'joe' '12345' 'maria' 'qwerty' 'sim' '1970-01-01'
      

      你在找什么?

      你可以用你的命令创建一个文件并执行它们:

      ./redis-cli -h XXX.XXX.XXX.XXX -p YYYY < commandsfile.txt
      

      【讨论】:

      • 假设我有两个命令,'command 1' 连接到 redis 实例,'command 2' 在 redis 实例会话中执行它而不与它交互。当我执行“命令 1”时,它会打开一个交互式会话。如何在该交互式会话中执行“命令 2”,然后远程退出。
      • 为什么要在交互部分执行command2?您可以在同一个单行命令中执行两个命令(以及更多命令)。我已经更新了我的答案。
      • 非常感谢。你的回答符合我的目的。我能够以这种方式运行 redis 命令。
      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2016-12-30
      • 2015-03-29
      • 1970-01-01
      相关资源
      最近更新 更多