0
我有一個可能存在於3K集合上的40K項目的列表,我想要計算每個項目存在多少集合。Redis:計算集合中項目發生的最好方法
簡單的算法,Python和省略爲簡單起見,一些管道的優化是這樣的:
ids = [1,2,3,4,5]
set1 = (1,3)
set2 = (2,3)
set3 = (4,5)
sets = [set1, set2, set3]
ids_count = {}
for id in ids:
ids_count[id] = sum([redis.sismember(id, set) for set in sets])
它將需要120M Redis的呼叫或3K使用流水線,都是很慢。 有沒有更好的方式來做到這一點,而不改變數據的存儲方式(我已經有redis的ID和列表列表)
謝謝,這樣做是真的很快從我的實施幾個小時到這一個 – Chemary
很高興我可以幫助。 ;) – aepsil0n