上一篇笔记在这 https://blog.csdn.net/weixin_42744102/article/details/99682461
服务端设置、配置redis
项目需求是分布式爬虫,多个节点获取共享数据,用redis数据库再好不过了。
首先安装redis,安装方法在上一篇笔记中。
安装好之后需要配置redis,方法很简单,打开redis.conf文件,修改三个东西:密码,是否能够后台运行,允许链接的ip地址
密码,找到requirepass 这一行,在这一行后面加一个空格输入自定义的密码即可。(原来会有一个密码就删掉,写上自己的)
能否后台运行,修改 daemonize 这一行,把no改成yes
允许连接的地址,修改bind 127.0.0.1这一行,在前面加#去掉,即可允许所有ip入度访问。
好了,现在,我们把redis的工具添加到环境变量中。上一笔记里面用alias方法将redis强行关联redis-server的方法并不雅观,在这里用最典型方法:
export PATH=$PATH:/usr/local/redis/bin
之后在终端直接输入redis-server就可以开启redis的服务端。
输入redis-cli可以进入redis的客户端。
在进入redis客户端后,可以使用set <key> <value> 如set test “1” 这样的语句,意思是在数据库中增加一个key叫test,这个key的value是“1”。
redis默认存储的数据库是db=0(第0号数据库)
当执行添加key操作时,可能会报权限不够(auth error),解决方法很简单,先输入 auth <password>
回车,返回OK就可以了。(这个password就是上面自己定义的requirepass的值)
云服务器开放安全组
我使用的是腾讯云服务器,云服务器的端口一般都在安全组里面控制着,需要配置了安全组才能使用放通某个特定的端口。很多人用本地机器连不到云服务器的某个服务,很可能都是这个问题。
redis的服务端端口开启后默认为6379,需要到云服务器供应商的控制台配置安全组,0.0.0.0/0 TCP:6379 这样就可以了
使用本地python脚本连接
redis数据库配置好了,万事俱备,现在就要发挥它的作用了。
redis加python可以搭建分布式爬虫,并且轻松从一个节点获取每一个节点的状态,redis相当于是一块共享的内存空间,需要注意的可能会出死锁问题(俗称科学家进餐问题,这里不多讲)。
首先 pip install redis
可以使用普通的连接方式,如
# coding:utf8
import redis
if __name__ == '__main__':
red = redis.Redis(host='<你自己的redis服务器的ip地址>', port=6379, db=0, password='<你设置的password>')
print red.get('test')
>>> "1"
这样就可以了。现在就可以尽情的进行数据存储了。
在连接数量较多的时候,建议使用连接池进行连接,这样会可靠很多。