管道(事务),要是都成功则成功,失败一个全部失败
原理:将数据操作放在内存中,只有成功后,才会一次性全部放入redis
记住,redis中的管道可以开启事务处理,但是并没有回滚这一说法!跟mysql中的事务回滚不一样!
from django-redis import get_redis_connection
#连接redis数据池
redis_conn = get_redis_connection('sms_code')
#初始化管道对象
pl = redis_conn.pipeline()
#开启事务
pl.multi()
# 添加要执行的命令到管道中
pl.setex("sms_%s" % mobile, constants.SMS_CODE_EXPIRE, sms_code) # 设置短信有效期为300s
pl.setex("sms_time_%s" % mobile, constants.SMS_CODE_INTERVAL, "_") # 设置发送短信间隔为60s
#一次性执行管道中所有的命令
pl.execute()