Open Friday21 opened 5 years ago
我测试了一下没有问题啊?
哦? 我在本地又测了一下, 发现使用redis集群时会出现我说的情况, 用单个redis我本地测试也没有问题。
from scrapy_redis_cluster.bloomfilter import BloomFilter
from app import redis_client
redis_client.ping()
Out[8]: {'127.0.0.1:8102': True, '127.0.0.1:8101': True, '127.0.0.1:8100': True}
bf = BloomFilter(redis_client, 'test', 30, 6)
fp = '75d6587d87b3f4f3aa574b33dbd69ceeb9eafe7b'
bf.exists(fp)
Out[11]: 0
bf.insert(fp)
bf.exists(fp)
Out[13]: 0
import redis
server2 = redis.StrictRedis()
server2.ping()
Out[17]: True
bf2 = BloomFilter(server2, 'test2', 30, 6)
bf2.exists(fp)
Out[19]: 0
bf2.insert(fp)
bf2.exists(fp)
Out[21]: 1
你连接集群用的是什么?
自己实现的还是其它?
from app import redis_client 就是这个
用的 rediscluster
from rediscluster import StrictRedisCluster
startup_nodes = [
{'host': '127.0.0.1', 'port': 8100},
{'host': '127.0.0.1', 'port': 8101},
{'host': '127.0.0.1', 'port': 8102},
]
redis_conn = StrictRedisCluster(
startup_nodes=startup_nodes,
decode_responses=True,
skip_full_coverage_check=True,
max_connections=None)
很奇怪啊, 为甚用集群的时候22可以, 30不可以?
是个例 还是全是哦?
当fp长度为40(scrapy fingerprint 默认长度)时, 都是不行的。 如果用短点的fp 比如“abcd”是可以的。
好呢 我测试一下
当BLOOMFILTER_BIT设置为30时, 起不到去重效果。
当BLOOMFILTER_BIT 设置为22时没有问题, 不知道是什么原因