【问题标题】:How can I make set/get work in redis inside docker?如何在 docker 内的 redis 中进行 set/get 工作?
【发布时间】:2020-03-19 17:23:19
【问题描述】:

我检查了 REDIS 是否在 docker 中运行,但是 python 脚本中的 set/get 方法不起作用。他们在码头外工作得很好,但是。任何人都可以请帮助可以做什么

我在本地使用redis

"redis_host":"127.0.0.1",
"redis_port":6379,

REDIS_HOST = config['redis_host']
REDIS_PORT = config['redis_port']
rdb = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT, db=0)

key = 'user_id' + '.' + str(user_id)
print("getting key from redis",rdb.get(key))

【问题讨论】:

  • 你能解释一下吗?你的 python redis 客户端在哪里,你是如何连接到 redis docker 容器的?
  • 我在本地使用redis "redis_host":"127.0.0.1", "redis_port":6379, REDIS_HOST = config['redis_host'] REDIS_PORT = config['redis_port'] rdb = redis.StrictRedis (host=REDIS_HOST, port=REDIS_PORT, db=0) key = 'user_id' + '.' + str(user_id) print("从redis获取key",rdb.get(key))
  • docker run -it -d --name redis-server -v redis-volume:/data -p 6379:6379 -d redis
  • 什么不起作用?这个脚本也是在容器中运行还是在主机上运行?

标签: python docker redis


【解决方案1】:

首先,您发布的代码不包含 SET 命令。您的 Redis 实例中是否存在此密钥?

除此之外,我不知道您使用的是什么 redis 客户端,但我使用的是 redis-py python 客户端,它在 Ubuntu Redis & Flask 的 docker 容器中以这种方式工作:

from flask import Flask, render_template, request
from redis import Redis, RedisError

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello World! I have been seen %s times.' % redis.get('hits')

【讨论】:

  • 是的,脚本检查是否退出密钥(获取密钥),如果密钥不存在设置密钥,我忘了放代码,但现在 redis 工作正常,改变了重建中的码头线,谢谢
猜你喜欢
  • 2013-01-20
  • 1970-01-01
  • 2021-03-17
  • 2020-12-20
  • 2020-01-18
  • 1970-01-01
  • 2013-01-14
  • 2023-01-18
  • 2023-02-08
相关资源
最近更新 更多