当前位置:   article > 正文

Python交互Redis_任务描述 本关任务:启动 redis 客户端并创建一些值。 相关知识 为了完成本关任务,

任务描述 本关任务:启动 redis 客户端并创建一些值。 相关知识 为了完成本关任务,

在这里插入图片描述

python交互redis

  • 模块(redis)

Ubuntu

sudo pip3 install redis
  • 1
  • 使用流程

    import redis

    创建数据库连接对象

    r = redis.Redis(host=‘127.0.0.1’,port=6379,db=0,password=‘123456’)

  • 代码示例

    import redis

    1 创建redis数据库连接对象

    r = redis.Redis(password=‘123456’)

    2 使用,很多命令的返回值是字节串,需要用字符串

    表示时,调用decode方法.

    3.1 通用命令…

    print(r.keys(‘*’))
    print(r.exists(‘name’))

    3.2 字符串类型的操作

    r.set(‘uname’, ‘aid2102’, 60)
    print(r.get(‘uname’).decode())
    r.mset({‘a’: 100, ‘b’: 200, ‘c’: 300})
    print(r.mget([‘a’, ‘b’, ‘c’]))

    3.3 列表类型的操作

    r.lpush(‘pylk1’,100,200,300)
    print(r.lrange(‘pylk1’,0,-1))

list案例: 一个进程负责生产任务,一个进程负责消费任务

进程1: 生产者,product.py

import redis
# 1 创建redis数据库连接对象
r = redis.Redis(password='123456')
# 2.向任务队列中添加任务,使用列表类型
# 任务格式: 任务类别_发送者_接收者_内容
task = 'sendMail_aid2102_mzg_helloworld'
r.lpush('lst:tasks',task)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

进程2: 消费者,consumer.py

import redis

r = redis.Redis(password='123456')

while True:
    task = r.brpop('lst:tasks',3)
    if task:
        print(task)
        # (b'lst:tasks', b'sendMail_aid2102_mzg_helloworld')
        # 处理任务
        task_data = task[1].decode()
        print(task_data)
        # sendMail_aid2102_mzg_helloworld
        lst_data = task_data.split('_')
        if lst_data[0] == 'sendMail':
            print('执行发送邮件的任务...')
    else:
        print('-no task!-')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/536301
推荐阅读
相关标签
  

闽ICP备14008679号