Python 連接redis密碼中特殊字符問題


連接方法:

self.pool = redis.ConnectionPool.from_url(self.redis_url)
opredis = redis.Redis(connection_pool=self.pool)
redis_url = 'redis://:cot$#D4^&1234@172.31.26.174:6379/0'

直接連redis會報錯,報錯主要內容:

ValueError: invalid literal for int() with base 10

問題:redis密碼中不允許有特殊字符 ? #,具體請查看ConnectionPool.from_url方法

解決方法:

配置密碼是對密碼encode,連接時對密碼decode

以python3為例:

from urllib import parse

redis_url = 'redis://:{}@172.31.26.174:6379/0'.format(parse.quote('cot$#D4^&1234'))

self.pool = redis.ConnectionPool.from_url(self.redis_url, , decode_components=True) 

opredis = redis.Redis(connection_pool=self.pool)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM