美文网首页
十六. 数据库:Redis篇

十六. 数据库:Redis篇

作者: 橄榄的世界 | 来源:发表于2018-03-16 00:09 被阅读0次
    # -*- 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篇

          本文链接:https://www.haomeiwen.com/subject/bxthqftx.html