分布式爬虫使用的是Scrapy+Redis的架构,使用Python操作的redis的方法,总结一下。

Python操作redis

  • redis模块提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py(官方建议使用StrictRedis)。
  • 示例代码如下:
1
2
3
4
5
6
7
8
9
10
$ pip install redis

使用redis:
>>> import redis
>>> pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
>>> r = redis.Redis(connection_pool=pool)

使用StrictRedis
>>> pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
>>> r = redis.StrictRedis(connection_pool=pool)

Python操作redis集群

  • 操作redis集群,无法使用redis模块进行操作,需使用redis-py-cluster操作
  • 示例代码:
1
2
3
4
5
6
7
8
9
10
$ 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'

参考链接: