Python開啟SSL連接Azure Redis Cluster

今天使用Python連接Azure Redis的時(shí)候遇到了一系列問題遇八。

首先历帚,使用Python的redis包連接Redis的時(shí)候一切順利姆怪,但是過了一段時(shí)間就報(bào)了Moved Exception为严。這才想起來自己初始化Azure Redis時(shí)開啟了Cluster。

Python連接Redis Cluster到不是什么難事黑低,安裝 redis-py-cluster即可。

$ pip install redis-py-cluster

官方文檔示例配置如下:

>>> from rediscluster import StrictRedisCluster

>>> # Requires at least one node for cluster discovery. Multiple nodes is recommended.
>>> startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]

>>> rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)

>>> rc.set("foo", "bar")
True
>>> print(rc.get("foo"))
'bar'

但是這樣配置無法正常連接酌毡,因?yàn)槲疫€配置了Azure Redis Cluster只使用SSL連接克握。redis-py-cluster的文檔雖然沒有使用SSL的示例,但是Release Note里有這么一句:

1.3.4 (Mar 5, 2017)
...
*Add SSLClusterConnection for connecting over TLS/SSL to Redis Cluster
...

所以最新版肯定支持SSL訪問Redis Cluster枷踏。于是直接去GitHub翻代碼菩暗。找到注釋如下:

    Manages TCP communication over TLS/SSL to and from a Redis cluster
    Usage:
        pool = ClusterConnectionPool(connection_class=SSLClusterConnection, ...)
        client = StrictRedisCluster(connection_pool=pool)

按此方法調(diào)用后本以為大功告成,但是又返回了新的錯(cuò)誤旭蠕。

redis.exceptions.ResponseError: unknown command: CONFIG

好在微軟官方論壇搜到了答案:

Azure Redis cache doesn't support the CONFIG command, but redis-py-cluster has a workaround for this:
From their release notes for 1.3.2:
If your redis instance is configured to not have the CONFIG ... comannds enabled due to security reasons you need to pass this into the client object skip_full_coverage_check=True. Benefits is that the client class no longer requires the CONFIG ... commands to be enabled on the server. Downsides is that you can't use the option in your redis server and still use the same feature in this client.

同時(shí)因?yàn)椴⒉恍枰渲枚鄠€(gè)節(jié)點(diǎn)停团,所以最終代碼示例如下:

from rediscluster import StrictRedisCluster
from rediscluster.connection import *

startup_nodes = [{"host": "domain", "port": "6380"}]
pool = ClusterConnectionPool(connection_class=SSLClusterConnection, startup_nodes=startup_nodes, password="*****",skip_full_coverage_check=True)
rc = StrictRedisCluster(connection_pool=pool)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掏熬,一起剝皮案震驚了整個(gè)濱河市佑稠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌旗芬,老刑警劉巖讶坯,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異岗屏,居然都是意外死亡辆琅,警方通過查閱死者的電腦和手機(jī)漱办,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婉烟,“玉大人娩井,你說我怎么就攤上這事∷圃” “怎么了洞辣?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昙衅。 經(jīng)常有香客問我扬霜,道長,這世上最難降的妖魔是什么而涉? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任著瓶,我火速辦了婚禮,結(jié)果婚禮上啼县,老公的妹妹穿的比我還像新娘材原。我一直安慰自己,他們只是感情好季眷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布余蟹。 她就那樣靜靜地躺著,像睡著了一般子刮。 火紅的嫁衣襯著肌膚如雪威酒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天挺峡,我揣著相機(jī)與錄音兼搏,去河邊找鬼。 笑死沙郭,一個(gè)胖子當(dāng)著我的面吹牛佛呻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播病线,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼吓著,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了送挑?” 一聲冷哼從身側(cè)響起绑莺,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惕耕,沒想到半個(gè)月后纺裁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年欺缘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栋豫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谚殊,死狀恐怖丧鸯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫩絮,我是刑警寧澤丛肢,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站剿干,受9級特大地震影響蜂怎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜置尔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一杠步、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撰洗,春花似錦篮愉、人聲如沸腐芍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猪勇。三九已至设褐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泣刹,已是汗流浹背助析。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椅您,地道東北人外冀。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像掀泳,于是被迫代替她去往敵國和親雪隧。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理员舵,服務(wù)發(fā)現(xiàn)脑沿,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 5/15/2017 7:06:35 PM 縱觀各大組件马僻,配置文件占據(jù)極其重要的地位庄拇。可配置化也是當(dāng)下開發(fā)的一流行趨...
    愛做夢的胖子閱讀 4,421評論 0 8
  • Redis 配置文件示例 注意:想要讀取配置文件韭邓,Redis的第一個(gè)參數(shù)必須是文件的路徑 ./redis-serv...
    起個(gè)名忒難閱讀 1,192評論 0 1
  • # redis 配置文件示例 # 當(dāng)你需要為某個(gè)配置項(xiàng)指定內(nèi)存大小的時(shí)候措近,必須要帶上單位溶弟, # 通常的格式就是 1...
    iyimao閱讀 790評論 0 2
  • # redis 配置文件示例# 當(dāng)你需要為某個(gè)配置項(xiàng)指定內(nèi)存大小的時(shí)候,必須要帶上單位熄诡,# 通常的格式就是 1k ...
    誰在烽煙彼岸閱讀 351評論 0 0