redis事务

nber1994

All
Posts
Categories
Tags
About

redis事务

    ❐redis


事务实现

事务开始

命令入队

事务队列

typedef struct redisClient {
    //事务状态
    multiState mstate;
} redisClient;
typedef struct multiState {
    //事务队列,FIFO顺序
    multiCmd *commands;
    //已入队命令计数
    int count;
}

事务对列是一个multiCmd的数组

typedef struct multiCmd {
    //参数
    robj **argv;
    //参数数量
    int argc;
    //命令指针
    struct redisCommand *cmd;
}

执行事务

watch命令

watch命令监听数据库键

typedef struct redisDb {
    //正在被watch命令监听的键
    dict *watched_keys;
} RedisDB;

监听的触发

事务的ACID

重点回顾