codis slot分配

slot分配          

     和redis-cluster不同,codis的redis上不會維護slot表信息,每個redis都默認自己負責1024個slot,slot表是維護在Dashboard並被Proxy感知的,這一點算是Codis的架構一個較大的特點。

 

使用python 計算出result key被分配在哪個slot

#!/bin/env python

import binascii
import sys

try:
    print binascii.crc32(sys.argv[1])%1024
except Exception,e:
    print 'ERROR:%s' %(e,)
    sys.exit(1)
[root@P1QMSTST01 slotCalc]# python slotCalc.py result:A18BR04NAY
278
[root@P1QMSTST01 slotCalc]# 

 Codis只提供了一個key相關的slot命令:slotshashkey [key1 key2...] , 獲取key所對應的hashslot。

[root@P1QMSPL2RTM01 scripts]# redis-cli -p 19000 slotshashkey result:A18BR04NAY
1) (integer) 278
[root@P1QMSPL2RTM01 scripts]# redis-cli -p 6385 slotshashkey result:A18BR04NAY
1) (integer) 278
[root@P1QMSPL2RTM01 scripts]# 

可以看到該result所在hashslot是 278. 從6385上也看到是第278號slot。

也就是說 通過19000訪問不到的此key不是因爲slot信息不匹配導致的?

127.0.0.1:19000> zrange result:A18BR04NAY 0 -1
(empty list or set)
127.0.0.1:19000> 
[root@P1QMSPL2RTM01 scripts]# redis-cli -p 6385

127.0.0.1:6385> zrange result:A18BR04NAY 0 -1
1) "{\"actualEqptId\":\"MSPU0200\",\"defectCnt\":0,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":true,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543355980,\"ruleSeqId\":3277}"
2) "{\"actualEqptId\":\"MSPU0200\",\"defectCnt\":2,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":true,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543355980,\"ruleSeqId\":3298}"
3) "{\"actualEqptId\":\"MSPU0100\",\"defectCnt\":0,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3299}"
4) "{\"actualEqptId\":\"MSPU0100\",\"defectCnt\":2,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3300}"
5) "{\"actualEqptId\":\"MSPU0500\",\"defectCnt\":0,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3301}"
6) "{\"actualEqptId\":\"MSPU0500\",\"defectCnt\":2,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3302}"
7) "{\"actualEqptId\":\"MSPU0600\",\"defectCnt\":0,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3303}"
8) "{\"actualEqptId\":\"MSPU0600\",\"defectCnt\":2,\"glassId\":\"A18BR04NAY\",\"ifPreProcess\":false,\"ooc\":false,\"oos\":false,\"panelCnt\":8,\"processEndTime\":1543822374,\"ruleSeqId\":3304}"
127.0.0.1:6385> 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章