#!/usr/bin/env python
# -*- coding: utf-8 -*-
import redis
"""
redis默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,
如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,
并且默认情况下一次pipline 是原子性操作。
管道(pipeline)是redis在提供单个请求中缓冲多条服务器命令的基类的子类。
它通过减少服务器-客户端之间反复的TCP数据库包,从而大大提高了执行批量命令的功能。
"""
pool = redis.ConnectionPool(host='127.0.0.1', port=6379)
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline() # 创建一个管道
pipe.set('name', 'chentao')
pipe.lpush('language', 'python', 'android', 'java')
pipe.hset('info', 'age', 24)
pipe.zadd('job', time_year=1)
# 同这个效果一样
pipe.set('name2', 'chentao').lpush('language2', 'python', 'android', 'java') \
.hset('info2', 'age', 24) \
.zadd('job2', time_year=1)
pipe.execute()
print(r.keys())
网友评论