资讯专栏INFORMATION COLUMN

python访问redis的问题

Lemon_95 / 2771人阅读

摘要:今天在本机上用访问出错,有两种类型的错误如果我配的方式,则会报这样的错误如果我配的方式,则会报错误一下,明天想办法解决。。。。实际上应该是把配置改为为机器数,为允许宕掉的机器数。

今天在本机上(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)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38412.html

相关文章

  • python访问redis问题

    摘要:今天在本机上用访问出错,有两种类型的错误如果我配的方式,则会报这样的错误如果我配的方式,则会报错误一下,明天想办法解决。。。。实际上应该是把配置改为为机器数,为允许宕掉的机器数。 今天在本机上(windows)用python访问redis出错,有两种类型的错误:如果我配sentinel的方式,则会报 unknown command SENTINEL这样的错误;如果我配StrictRed...

    joywek 评论0 收藏0
  • Python反序列化安全问题

    摘要:反序列化安全问题一这一段时间使用做开发,使用了存储,阅读了源码,发现在存储到过程中,利用了模块进行序列化以及反序列化正好根据该样例学习一波反序列化相关的安全问题,不足之处请各位表哥指出。 Python 反序列化安全问题(一) 这一段时间使用flask做web开发,使用了redis存储session,阅读了flask_session源码,发现在存储session到redis过程中,利用了...

    Amos 评论0 收藏0
  • Python--Redis实战:第五章:使用Redis构建支持程序:第4节:服务发现与配置

    摘要:在通常情况下,即使只更新配置中的一个标志,也会导致更新后的配置文件被强制推送至所有服务器,收到更新的服务器可能需要重新载入配置甚至可能还要重启应用程序服务器。将被包裹函数的一些有用的元数据复制给配置处理器。 上一篇文章:Python--Redis实战:第五章:使用Redis构建支持程序:第3节:查找IP所属城市以及国家 随着我们越来越多地使用Redis以及其他服务,如何存储各项服务的...

    printempw 评论0 收藏0
  • Python--Redis实战:第五章:使用Redis构建支持程序:第4节:服务发现与配置

    摘要:在通常情况下,即使只更新配置中的一个标志,也会导致更新后的配置文件被强制推送至所有服务器,收到更新的服务器可能需要重新载入配置甚至可能还要重启应用程序服务器。将被包裹函数的一些有用的元数据复制给配置处理器。 上一篇文章:Python--Redis实战:第五章:使用Redis构建支持程序:第3节:查找IP所属城市以及国家 随着我们越来越多地使用Redis以及其他服务,如何存储各项服务的...

    jackzou 评论0 收藏0
  • Flask+python3+supervisor+redis+docker+nginx技术架构web

    摘要:背景手里有一个项目,代码按照前端代码库后端代码库分别在上,分散带来的结果是,不容易持续集成,比如你可能需要很多的去保证一个项目的正常运作,但是这个项目也不是特别大,所以尝试将代码融合,于此同时将代码化,用于持续部署。 背景 手里有一个web项目,代码按照前端代码库、后端代码库分别在GitHub上,分散带来的结果是,不容易持续集成,比如你可能需要很多的job去保证一个项目的正常运作,但是...

    ztyzz 评论0 收藏0

发表评论

0条评论

Lemon_95

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<