Redis中的事务

简单介绍
MULTI
    开始一个事务。在这个命令执行之后,客户端发送的所有针对数据库或者数据库键的命令都不会被立即执行,而是被放入到一个事务队列里面,并返回 QUEUED 表示命令已入队。
DISCARD
    取消事务,放弃执行事务队列中的所有命令。复杂度为 O(1)。
EXEC
    按照命令被入队到事务队列中的顺序,执行事务队列中的所有命令。命令的复杂度为队列中所有命令的复杂度之和。命令的返回值是一个列表,列表里包含了事 务队列中所有被执行命令的返回值。
WATCH key [key ...]
    如果被监视的键在事务提交之前(也即是 EXEC 命令执行之前), 已经被其他客户端抢先修改了, 那么服务器将拒绝执行客户端提交的事务, 并返回 nil 作为事务的回复.
例子
    def ZDECRBY(key, decrment, member):
        监视输入的有序集合
    WATCH key
        取得元素当前的分值
    old_score = ZSCORE key member
        使用当前分值减去指定的减量,得出新的分值
    new_score = old_score - decrment
        使用事务包裹 ZADD 命令
        确保 ZADD 命令只会在有序集合没有被修改的情况下执行
    MULTI
    ZADD key new_score member #     
        为元素设置新分值,覆盖现有的分值
    EXEC
        当执行更新或者是删除操作的时候可以加事务。我是这么理解的。
    UNWATCH 
        取消对所有键的监视。复杂度为 O(1)
    DISCARD 
        放弃执行事务,并且取消对所有键的监视(相当于执行 UNWATCH)。复杂度为O(1)

猜你喜欢

转载自blog.csdn.net/qq_25484147/article/details/80773438
今日推荐