50 lines
1.7 KiB
C
50 lines
1.7 KiB
C
|
|
#ifndef REDIS_MIGRATE_REDIS_MIGRATE_H
|
|
#define REDIS_MIGRATE_REDIS_MIGRATE_H
|
|
|
|
#include "redismodule.h"
|
|
|
|
#define MODULE_NAME "redis-migrate"
|
|
#define REDIS_MIGRATE_VERSION 1
|
|
#define LRU_BITS 24
|
|
#define C_ERR -1
|
|
#define C_OK 1
|
|
|
|
typedef struct redisObject {
|
|
unsigned type: 4;
|
|
unsigned encoding: 4;
|
|
unsigned lru: LRU_BITS; /* LRU time (relative to global lru_clock) or
|
|
* LFU data (least significant 8 bits frequency
|
|
* and most significant 16 bits access time). */
|
|
int refcount;
|
|
void *ptr;
|
|
} robj;
|
|
|
|
typedef enum {
|
|
REPL_STATE_NONE = 0, /* No active replication */
|
|
REPL_STATE_CONNECT, /* Must connect to master */
|
|
REPL_STATE_CONNECTING, /* Connecting to master */
|
|
/* --- Handshake states, must be ordered --- */
|
|
REPL_STATE_RECEIVE_PING_REPLY, /* Wait for PING reply */
|
|
REPL_STATE_SEND_HANDSHAKE, /* Send handshake sequence to master */
|
|
REPL_STATE_RECEIVE_AUTH_REPLY, /* Wait for AUTH reply */
|
|
REPL_STATE_RECEIVE_PORT_REPLY, /* Wait for REPLCONF reply */
|
|
REPL_STATE_RECEIVE_IP_REPLY, /* Wait for REPLCONF reply */
|
|
REPL_STATE_RECEIVE_CAPA_REPLY, /* Wait for REPLCONF reply */
|
|
REPL_STATE_SEND_PSYNC, /* Send PSYNC */
|
|
REPL_STATE_RECEIVE_PSYNC_REPLY, /* Wait for PSYNC reply */
|
|
/* --- End of handshake states --- */
|
|
REPL_STATE_TRANSFER, /* Receiving .rdb from master */
|
|
REPL_STATE_CONNECTED, /* Connected to master */
|
|
} repl_state;
|
|
|
|
mstime_t mstime(void);
|
|
|
|
long long ustime(void);
|
|
|
|
int rm_migrateCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc);
|
|
|
|
int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc);
|
|
|
|
#endif //REDIS_MIGRATE_REDIS_MIGRATE_H
|