十六. 数据库:Redis篇

  • 1.安装:https://github.com/MicrosoftArchive/redis/releases

  • 2.Redis可视化工具:https://redisdesktop.com/download

  • 3.第三方库采用redis
    py -3 -m pip install redis

  • 4.简单示例

# -*- coding: utf-8 -*-
import redis

#连接Redis,得到一个客户端对象
r = redis.StrictRedis(host = 'localhost',port = 6379, db=0)

p1 = {
    'name':'李小龙',
    'age': 23,
    'sex':'M',
}

p2 = {
    'name':'乔丹',
    'age': 23,
    'sex':'M',
}                      

#将数据保存到Redis中
r.hmset('person:1',p1)
r.hmset('person:2',p2)

#关闭链接
r.connection_pool.disconnect()

在redis文件夹下以管理员身份直接打开“redis-cli.exe”,输入
KEYS person:* :可以查看到有两条数据。

使用Redis Desktop Manager更直观,连接Redis Server时Host为“127.0.0.1”,port为“6379”,name自己按照喜好填写即可。


  • 5.实现1000条数据的导入,与前几章相似。
    pipelines.py
import redis
from scrapy import Item

class RedisPipeline(object):

    # 打开数据库
    def open_spider(self, spider):
        db_host = spider.settings.get('REDIS_HOST','localhost')
        db_port = spider.settings.get('REDIS_PORT',6379)
        db_index = spider.settings.get('REDIS_DB_INDEX',0)
        
        self.db_conn = redis.StrictRedis(host=db_host,port=db_port,db=db_index)
        self.item_i = 0

    # 关闭数据库
    def close_spider(self, spider):
        self.db_conn.connection_pool.disconnect()

    # 对数据进行处理
    def process_item(self, item, spider):
        self.insert_db(item)
        return item

    # 插入数据
    def insert_db(self, item):
        if isinstance(item,Item):
            info = dict(item)
            
        self.item_i += 1
        self.db_conn.hmset('book:{}'.format(self.item_i),info)

settings.py

REDIS_HOST = 'localhost'
REDIS_PORT = 6379
REDIS_DB_INDEX = 0

ITEM_PIPELINES = {
   'books.pipelines.BooksPipeline': 300,
    'books.pipelines.RedisPipeline': 404,
}

⑤运行cmd命令:scrapy crawl books,用Redis Desktop Manager显示了1000条结果。

也可以打开redis_cli.exe来进行查询
keys book:*
keys book:1
hgetall book:1
hgetall book:2

你可能感兴趣的:(十六. 数据库:Redis篇)