redis 支持事务吗?【面试】
1.非关系型数据库,本身不支持事务
2.redis 中的管道可以实现事务的支持,(要么都成功,要么都失败)
-
实现的原理:多条命令放到一个管道中,一次性执行。
3.具体代码:
4.如果是集群环境,不支持管道。(因为没办法管理,1份数据分成3份存到A,B,C,是锁不住的)
import redis
pool = redis.ConnectionPool()
r = redis.Redis(connection_pool=pool)
pipe = r.pipeline(transaction=True) # 开启事务
pipe.multi() # 管道开启,等待放入多条命令
pipe.set('name','egon')
pipe.set('role','admin')
# 到此,命令都没有执行
pipe.execute() # 执行管道中的所有命令。