Python中的Redis AUTH命令

Hot*_*PxL 15 python redis

我在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什么?还有,为什么叫这个StrictRedisStrict这里的意思是什么?

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通过关键字参数传递的.

  • @JustinThomas没有redis的用户名 (2认同)

Pun*_*rud 7

这对我很有用。

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)