我在Python 2中使用redis-py绑定来连接到我的Redis服务器.服务器需要密码.我不知道如何AUTH在Python中建立连接.
以下代码不起作用:
import redis
r = redis.StrictRedis()
r.auth('pass')
Run Code Online (Sandbox Code Playgroud)
它说:
'StrictRedis'对象没有属性'auth'
也,
r = redis.StrictRedis(auth='pass')
Run Code Online (Sandbox Code Playgroud)
也不起作用.没有这样的关键字参数
我以前在其他语言中使用过Redis绑定,通常方法名称与Redis命令一致.所以我猜想r.auth会发送AUTH,但不幸的是它没有这种方法.
那么标准方式是AUTH什么?还有,为什么叫这个StrictRedis?Strict这里的意思是什么?
Hot*_*PxL 29
感谢评论的提示.我从https://redis-py.readthedocs.org/en/latest/找到答案.
它说
class redis.StrictRedis(host='localhost', port=6379, db=0, password=None, socket_timeout=None, connection_pool=None, charset='utf-8', errors='strict', unix_socket_path=None)
Run Code Online (Sandbox Code Playgroud)
所以AUTH实际上是password通过关键字参数传递的.
这对我很有用。
redis_db = redis.StrictRedis(host="localhost", port=6379, db=0, password='yourPassword')
Run Code Online (Sandbox Code Playgroud)
如果你在不同的服务器上运行Redis,你必须记住在配置(/etc/redis/redis.conf)中bind 127.0.0.1之后添加bind 0.0.0.0。在 Ubuntu 上,这应该只输出一行 0.0.0.0:
sudo netstat -lnp | grep redis
Run Code Online (Sandbox Code Playgroud)
我的 netstat 结果:
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 6089/redis-server 0
Run Code Online (Sandbox Code Playgroud)