@@ -65,10 +65,13 @@ typedef long long ustime_t;
6565#define REDISMODULE_OPEN_KEY_NOEXPIRE (1<<19)
6666/* Avoid any effects from fetching the key */
6767#define REDISMODULE_OPEN_KEY_NOEFFECTS (1<<20)
68+ /* Allow access expired key that haven't deleted yet */
69+ #define REDISMODULE_OPEN_KEY_ACCESS_EXPIRED (1<<21)
70+
6871/* Mask of all REDISMODULE_OPEN_KEY_* values. Any new mode should be added to this list.
6972 * Should not be used directly by the module, use RM_GetOpenKeyModesAll instead.
7073 * Located here so when we will add new modes we will not forget to update it. */
71- #define _REDISMODULE_OPEN_KEY_ALL REDISMODULE_READ | REDISMODULE_WRITE | REDISMODULE_OPEN_KEY_NOTOUCH | REDISMODULE_OPEN_KEY_NONOTIFY | REDISMODULE_OPEN_KEY_NOSTATS | REDISMODULE_OPEN_KEY_NOEXPIRE | REDISMODULE_OPEN_KEY_NOEFFECTS
74+ #define _REDISMODULE_OPEN_KEY_ALL REDISMODULE_READ | REDISMODULE_WRITE | REDISMODULE_OPEN_KEY_NOTOUCH | REDISMODULE_OPEN_KEY_NONOTIFY | REDISMODULE_OPEN_KEY_NOSTATS | REDISMODULE_OPEN_KEY_NOEXPIRE | REDISMODULE_OPEN_KEY_NOEFFECTS | REDISMODULE_OPEN_KEY_ACCESS_EXPIRED
7275
7376/* List push and pop */
7477#define REDISMODULE_LIST_HEAD 0
@@ -117,12 +120,13 @@ typedef long long ustime_t;
117120#define REDISMODULE_ZADD_LT (1<<6)
118121
119122/* Hash API flags. */
120- #define REDISMODULE_HASH_NONE 0
121- #define REDISMODULE_HASH_NX (1<<0)
122- #define REDISMODULE_HASH_XX (1<<1)
123- #define REDISMODULE_HASH_CFIELDS (1<<2)
124- #define REDISMODULE_HASH_EXISTS (1<<3)
125- #define REDISMODULE_HASH_COUNT_ALL (1<<4)
123+ #define REDISMODULE_HASH_NONE 0
124+ #define REDISMODULE_HASH_NX (1<<0)
125+ #define REDISMODULE_HASH_XX (1<<1)
126+ #define REDISMODULE_HASH_CFIELDS (1<<2)
127+ #define REDISMODULE_HASH_EXISTS (1<<3)
128+ #define REDISMODULE_HASH_COUNT_ALL (1<<4)
129+ #define REDISMODULE_HASH_EXPIRE_TIME (1<<5)
126130
127131#define REDISMODULE_CONFIG_DEFAULT 0 /* This is the default for a module config. */
128132#define REDISMODULE_CONFIG_IMMUTABLE (1ULL<<0) /* Can this value only be set at startup? */
@@ -1089,6 +1093,7 @@ REDISMODULE_API int (*RedisModule_ZsetRangePrev)(RedisModuleKey *key) REDISMODUL
10891093REDISMODULE_API int (* RedisModule_ZsetRangeEndReached )(RedisModuleKey * key ) REDISMODULE_ATTR ;
10901094REDISMODULE_API int (* RedisModule_HashSet )(RedisModuleKey * key , int flags , ...) REDISMODULE_ATTR ;
10911095REDISMODULE_API int (* RedisModule_HashGet )(RedisModuleKey * key , int flags , ...) REDISMODULE_ATTR ;
1096+ REDISMODULE_API mstime_t (* RedisModule_HashFieldMinExpire )(RedisModuleKey * key ) REDISMODULE_ATTR ;
10921097REDISMODULE_API int (* RedisModule_StreamAdd )(RedisModuleKey * key , int flags , RedisModuleStreamID * id , RedisModuleString * * argv , int64_t numfields ) REDISMODULE_ATTR ;
10931098REDISMODULE_API int (* RedisModule_StreamDelete )(RedisModuleKey * key , RedisModuleStreamID * id ) REDISMODULE_ATTR ;
10941099REDISMODULE_API int (* RedisModule_StreamIteratorStart )(RedisModuleKey * key , int flags , RedisModuleStreamID * startid , RedisModuleStreamID * endid ) REDISMODULE_ATTR ;
@@ -1307,7 +1312,10 @@ REDISMODULE_API int *(*RedisModule_GetCommandKeys)(RedisModuleCtx *ctx, RedisMod
13071312REDISMODULE_API int * (* RedisModule_GetCommandKeysWithFlags )(RedisModuleCtx * ctx , RedisModuleString * * argv , int argc , int * num_keys , int * * out_flags ) REDISMODULE_ATTR ;
13081313REDISMODULE_API const char * (* RedisModule_GetCurrentCommandName )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
13091314REDISMODULE_API int (* RedisModule_RegisterDefragFunc )(RedisModuleCtx * ctx , RedisModuleDefragFunc func ) REDISMODULE_ATTR ;
1315+ REDISMODULE_API int (* RedisModule_RegisterDefragCallbacks )(RedisModuleCtx * ctx , RedisModuleDefragFunc start , RedisModuleDefragFunc end ) REDISMODULE_ATTR ;
13101316REDISMODULE_API void * (* RedisModule_DefragAlloc )(RedisModuleDefragCtx * ctx , void * ptr ) REDISMODULE_ATTR ;
1317+ REDISMODULE_API void * (* RedisModule_DefragAllocRaw )(RedisModuleDefragCtx * ctx , size_t size ) REDISMODULE_ATTR ;
1318+ REDISMODULE_API void (* RedisModule_DefragFreeRaw )(RedisModuleDefragCtx * ctx , void * ptr ) REDISMODULE_ATTR ;
13111319REDISMODULE_API RedisModuleString * (* RedisModule_DefragRedisModuleString )(RedisModuleDefragCtx * ctx , RedisModuleString * str ) REDISMODULE_ATTR ;
13121320REDISMODULE_API int (* RedisModule_DefragShouldStop )(RedisModuleDefragCtx * ctx ) REDISMODULE_ATTR ;
13131321REDISMODULE_API int (* RedisModule_DefragCursorSet )(RedisModuleDefragCtx * ctx , unsigned long cursor ) REDISMODULE_ATTR ;
@@ -1460,6 +1468,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
14601468 REDISMODULE_GET_API (ZsetRangeEndReached );
14611469 REDISMODULE_GET_API (HashSet );
14621470 REDISMODULE_GET_API (HashGet );
1471+ REDISMODULE_GET_API (HashFieldMinExpire );
14631472 REDISMODULE_GET_API (StreamAdd );
14641473 REDISMODULE_GET_API (StreamDelete );
14651474 REDISMODULE_GET_API (StreamIteratorStart );
@@ -1678,7 +1687,10 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
16781687 REDISMODULE_GET_API (GetCommandKeysWithFlags );
16791688 REDISMODULE_GET_API (GetCurrentCommandName );
16801689 REDISMODULE_GET_API (RegisterDefragFunc );
1690+ REDISMODULE_GET_API (RegisterDefragCallbacks );
16811691 REDISMODULE_GET_API (DefragAlloc );
1692+ REDISMODULE_GET_API (DefragAllocRaw );
1693+ REDISMODULE_GET_API (DefragFreeRaw );
16821694 REDISMODULE_GET_API (DefragRedisModuleString );
16831695 REDISMODULE_GET_API (DefragShouldStop );
16841696 REDISMODULE_GET_API (DefragCursorSet );
0 commit comments