您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    运用 Python 配合 Redis 超越缓存(4)
    时间:2020-07-13 08:05 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

        add_document(redis, 2'Sighting near the Columbia River''Class A'), 

        add_document(redis, 3'Chased by a tall hairy creature''Class A')) 

     

      results = await search(redis, 'chase|east'

      pp(results) 

     

      redis.close() 

      await redis.wait_closed() 

     

    def add_document(redis, id, title, classification): 

      return redis.execute('FT.ADD''bigfoot:sightings:search', id, '1.0'

        'FIELDS''title', title, 'classification', classification) 

     

    def search(redis, query): 

      return redis.execute('FT.SEARCH''bigfoot:sightings:search', query) 

     

    asyncio.run(main()) 


    在拥有了索引之后, 顺序就可以向外面添加文档了, 这一操作发作在顺序的第 27 行和第 28 行, 经过 FT.ADD 命令来完成。 每个文档偶读需求一个独一 ID 、一个介于 0.0 和 1.0 之间的权重(rank)以及相应的字段。在第 12 和第 13 行, 顺序运用 FT.CREATE 创立了一个索引。 索引需求描画顺序将要添加的每个文档中的字段的形式。 在这个例子中, 顺序需求添加大脚兽的目击事情, 该文档包含一个标题和一个分类, 并且它们都是文本字段。

    正如顺序的第 31 行所示, 在索引加载文档之后, 顺序就可以运用 FT.SEARCH 命令和详细的查询语句来执行查询操作。 第 20 行的特定查询指示 RedisSearch 在索引中查找包含这些术语之一的文档。 在这个例子中, 该查询将前往两个文档。

    运用 Redis 作为主数据库

    Redis 可以作为一个速度奇快的内存存储数据库来运用。 下面的代码运用了哈希来演示这种用法。 哈希是一种十分棒的数据结构, 它可以建模你想要贮存的记载类型, 并且可以将数据的主键用作键名的其中一部分。

    import asyncio 

     import aioredis 

     

     from pprint import pp 

     

     async def main(): 

     

       redis = await aioredis.create_redis('redis://:foobared@localhost:6379/0', encoding='utf-8'

     

       await asyncio.gather( 

         add_sighting(redis, 1'Possible vocalizations east of Makanda''Class B'), 

         add_sighting(redis, 2'Sighting near the Columbia River''Class A'), 

         add_sighting(redis, 3'Chased by a tall hairy creature''Class A')) 

     

       sightings = await asyncio.gather( 

         read_sighting(redis, 1), 

         read_sighting(redis, 2), 

         read_sighting(redis, 3)) 

     

       pp(sightings) 

     

       redis.close() 

       await redis.wait_closed() 

     

     def add_sighting(redis, id, title, classification): 

       return redis.hmset(f'bigfoot:sighting:{id}'

         'id', id, 'title', title, 'classification', classification) 

     

     def read_sighting(redis, id): 

       return redis.hgetall(f'bigfoot:sighting:{id}'

     

     asyncio.run(main()) 

    (责任编辑:admin)