MULTI
开启事务,后续的命令会被加入到同一个事务中
事务中的操作会发送给客服端,但是不会立即执行,而是将操作放到了该事务对应的一个队列中,服务端返回QUEQUD
EXEC
执行EXEC后,事务中的命令才会执行
事务中的命令出错时,不会回滚也不会停止,而是继续执行下一步操作
DISCARD
取消事务,事务队列会被清空
原子性:不支持,不会回滚且继续执行,
隔离性:支持,事务中的命令顺序,不会被打断,先EXEC先执行,单机redis读写操作使用单进程单线程
持久性:不支持,redis 数据容易丢失
一致性:不支持,要求通过乐观锁watch来实现
redis 非 事务型管道:
from redis import StrictRedis
# 创建redis客户端 decode_response = true 从redis中获取的数据会进行decorade,不会是byse类型
redis_client = StrictRedis(host='127.0.0.1',port=6379,db=0,decode_response=True)
# 创建管道 默认就会开启事务,(设置参数,transaction=False,则不会开启事务,只会开启管道)
pipe = redis_client.pipeline(transaction=False)
# 使用管道对象进行的操作
a = pipe.set('name', 'zhangsan')
b = pipe.get