python交互redis
- 模块(redis)
Ubuntu
sudo pip3 install redis
-
使用流程
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)
进程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!-')