如何通过CLI

时间:2017-02-21 23:46:38

标签: python redis

搬运工-撰写

web:
  container_name: authserver
  restart: always
  build: ./authserver
  expose:
    - "8000"
  links:
    - redis:redis
  environment:
    DEBUG: 'true'

redis:
  restart: always
  image: redis:latest
  ports:
    - "6379:6379"

docker inspect authserver_redis_1

    "Gateway": "172.17.0.1",
    "IPAddress": "172.17.0.3",
    "IPPrefixLen": 16,
    "IPv6Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": 0,
    "MacAddress": "02:42:ac:11:00:03"

从主机上的Python解释器(意思是我运行docker-compose本身)我可以使用Redis来获取/设置值

client = redis.StrictRedis(host='172.17.0.3', port=6379, db=0)

client.set("key01", "value01")
print client.get("key01")
>>>>"value01"

我遇到的问题是,如果我从命令行运行redis-cli

redis-cli -h 172.17.0.3 -p 6379

在同一台主机上(我正在与Python解释器交互的同一台机器上)然后运行HGETALL *,我希望返回key01和value01,但它会返回

(empty list or set)

我很难跟踪redis-cli和python redis库文档,所以我猜我做错了。

1 个答案:

答案 0 :(得分:2)

from io import StringIO
import pandas as pd

mycsv = """a{0}b{0}c
d{0}e{0}f""".format(chr(1))


pd.read_csv(StringIO(mycsv), sep=chr(1))

   a  b  c
0  d  e  f

这会将redis从容器转发到您的主机,因此您应该能够连接到localhost,就好像redis直接在您的计算机上运行一样。如果这不起作用,您可以通过运行

进行更多挖掘
ports:
    - "6379:6379"

获取正在运行的容器ID列表,然后

docker ps

直接连接到您的redis容器并运行redis-cli。