python连接redis失败、积极拒绝_python访问redis的问题

今天在本机上(windows)用python访问redis出错,有两种类型的错误:

如果我配sentinel的方式,则会报 unknown command 'SENTINEL'这样的错误;

如果我配StrictRedis的方式,则会报NOAUTH Authentication required.错误;

mark一下,明天想办法解决。。。。

ps:最终发现mongo连接失败是密码没有设置导致(居然是因为把线上配置看成线下配置了。。。。)

对于第一种错误,公司最近线上出现问题,正好遇到这样的错误,主要原因是sentinel没启动起来;不过这其中的过程有些坑爹,公司有3台redis sentinel机器,其中的一台机器宕机以后,另外两台机器始终无法选举出一台作为主,因为不知道哪位临时工在做redis配置的时候把选举机器的配置为3,导致只要宕掉一台就无法选举出来。实际上应该是把配置改为n-m, n为机器数,m为允许宕掉的机器数。

附上redis的代码如下:

import redis

import ConfigParser

import redis.sentinel

class RedisConn:

_rp = None

def __init__(self):

cp = ConfigParser.SafeConfigParser()

cp.read('avatar_redis.conf')

host = cp.get('redis', 'host')

port = cp.get('redis', 'port')

db_name = cp.get('redis', 'dbName')

pass_word = cp.get('redis', 'passWord')

self._rp = redis.StrictRedis(host=host, port=port, db=0, password=pass_word)

# = redis.ConnectionPool(host=host, port=port, db=0, password='')

#sentinel = redis.sentinel.Sentinel([(host, port)], socket_timeout=0.1)

#self._rp = sentinel.master_for(db_name, socket_timeout=0.1)

#self._rp = redis.Redis(connection_pool=conn_pool)

def get_conn(self):

return self._rp

def set_value(self, key, value):

self._rp.set(key, value)

def get_value(self, key):

return self._rp.get(key)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值