@@ -886,6 +886,7 @@ typedef struct RedisModuleServerInfoData RedisModuleServerInfoData;
886
886
typedef struct RedisModuleScanCursor RedisModuleScanCursor ;
887
887
typedef struct RedisModuleUser RedisModuleUser ;
888
888
typedef struct RedisModuleKeyOptCtx RedisModuleKeyOptCtx ;
889
+ typedef struct RedisModuleRdbStream RedisModuleRdbStream ;
889
890
890
891
typedef int (* RedisModuleCmdFunc )(RedisModuleCtx * ctx , RedisModuleString * * argv , int argc );
891
892
typedef void (* RedisModuleDisconnectFunc )(RedisModuleCtx * ctx , RedisModuleBlockedClient * bc );
@@ -967,14 +968,18 @@ typedef struct RedisModuleTypeMethods {
967
968
REDISMODULE_API void * (* RedisModule_Alloc )(size_t bytes ) REDISMODULE_ATTR ;
968
969
REDISMODULE_API void * (* RedisModule_TryAlloc )(size_t bytes ) REDISMODULE_ATTR ;
969
970
REDISMODULE_API void * (* RedisModule_Realloc )(void * ptr , size_t bytes ) REDISMODULE_ATTR ;
971
+ REDISMODULE_API void * (* RedisModule_TryRealloc )(void * ptr , size_t bytes ) REDISMODULE_ATTR ;
970
972
REDISMODULE_API void (* RedisModule_Free )(void * ptr ) REDISMODULE_ATTR ;
971
973
REDISMODULE_API void * (* RedisModule_Calloc )(size_t nmemb , size_t size ) REDISMODULE_ATTR ;
974
+ REDISMODULE_API void * (* RedisModule_TryCalloc )(size_t nmemb , size_t size ) REDISMODULE_ATTR ;
972
975
REDISMODULE_API char * (* RedisModule_Strdup )(const char * str ) REDISMODULE_ATTR ;
973
976
REDISMODULE_API int (* RedisModule_GetApi )(const char * , void * ) REDISMODULE_ATTR ;
974
977
REDISMODULE_API int (* RedisModule_CreateCommand )(RedisModuleCtx * ctx , const char * name , RedisModuleCmdFunc cmdfunc , const char * strflags , int firstkey , int lastkey , int keystep ) REDISMODULE_ATTR ;
975
978
REDISMODULE_API RedisModuleCommand * (* RedisModule_GetCommand )(RedisModuleCtx * ctx , const char * name ) REDISMODULE_ATTR ;
976
979
REDISMODULE_API int (* RedisModule_CreateSubcommand )(RedisModuleCommand * parent , const char * name , RedisModuleCmdFunc cmdfunc , const char * strflags , int firstkey , int lastkey , int keystep ) REDISMODULE_ATTR ;
977
980
REDISMODULE_API int (* RedisModule_SetCommandInfo )(RedisModuleCommand * command , const RedisModuleCommandInfo * info ) REDISMODULE_ATTR ;
981
+ REDISMODULE_API int (* RedisModule_SetCommandACLCategories )(RedisModuleCommand * command , const char * ctgrsflags ) REDISMODULE_ATTR ;
982
+ REDISMODULE_API int (* RedisModule_AddACLCategory )(RedisModuleCtx * ctx , const char * name ) REDISMODULE_ATTR ;
978
983
REDISMODULE_API void (* RedisModule_SetModuleAttribs )(RedisModuleCtx * ctx , const char * name , int ver , int apiver ) REDISMODULE_ATTR ;
979
984
REDISMODULE_API int (* RedisModule_IsModuleNameBusy )(const char * name ) REDISMODULE_ATTR ;
980
985
REDISMODULE_API int (* RedisModule_WrongArity )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
@@ -983,7 +988,7 @@ REDISMODULE_API int (*RedisModule_GetSelectedDb)(RedisModuleCtx *ctx) REDISMODUL
983
988
REDISMODULE_API int (* RedisModule_SelectDb )(RedisModuleCtx * ctx , int newid ) REDISMODULE_ATTR ;
984
989
REDISMODULE_API int (* RedisModule_KeyExists )(RedisModuleCtx * ctx , RedisModuleString * keyname ) REDISMODULE_ATTR ;
985
990
REDISMODULE_API RedisModuleKey * (* RedisModule_OpenKey )(RedisModuleCtx * ctx , RedisModuleString * keyname , int mode ) REDISMODULE_ATTR ;
986
- REDISMODULE_API int (* RedisModule_GetOpenKeyModesAll )() REDISMODULE_ATTR ;
991
+ REDISMODULE_API int (* RedisModule_GetOpenKeyModesAll )(void ) REDISMODULE_ATTR ;
987
992
REDISMODULE_API void (* RedisModule_CloseKey )(RedisModuleKey * kp ) REDISMODULE_ATTR ;
988
993
REDISMODULE_API int (* RedisModule_KeyType )(RedisModuleKey * kp ) REDISMODULE_ATTR ;
989
994
REDISMODULE_API size_t (* RedisModule_ValueLength )(RedisModuleKey * kp ) REDISMODULE_ATTR ;
@@ -1021,6 +1026,7 @@ REDISMODULE_API RedisModuleString * (*RedisModule_CreateStringPrintf)(RedisModul
1021
1026
REDISMODULE_API void (* RedisModule_FreeString )(RedisModuleCtx * ctx , RedisModuleString * str ) REDISMODULE_ATTR ;
1022
1027
REDISMODULE_API const char * (* RedisModule_StringPtrLen )(const RedisModuleString * str , size_t * len ) REDISMODULE_ATTR ;
1023
1028
REDISMODULE_API int (* RedisModule_ReplyWithError )(RedisModuleCtx * ctx , const char * err ) REDISMODULE_ATTR ;
1029
+ REDISMODULE_API int (* RedisModule_ReplyWithErrorFormat )(RedisModuleCtx * ctx , const char * fmt , ...) REDISMODULE_ATTR ;
1024
1030
REDISMODULE_API int (* RedisModule_ReplyWithSimpleString )(RedisModuleCtx * ctx , const char * msg ) REDISMODULE_ATTR ;
1025
1031
REDISMODULE_API int (* RedisModule_ReplyWithArray )(RedisModuleCtx * ctx , long len ) REDISMODULE_ATTR ;
1026
1032
REDISMODULE_API int (* RedisModule_ReplyWithMap )(RedisModuleCtx * ctx , long len ) REDISMODULE_ATTR ;
@@ -1104,7 +1110,7 @@ REDISMODULE_API int (*RedisModule_SetClientNameById)(uint64_t id, RedisModuleStr
1104
1110
REDISMODULE_API int (* RedisModule_PublishMessage )(RedisModuleCtx * ctx , RedisModuleString * channel , RedisModuleString * message ) REDISMODULE_ATTR ;
1105
1111
REDISMODULE_API int (* RedisModule_PublishMessageShard )(RedisModuleCtx * ctx , RedisModuleString * channel , RedisModuleString * message ) REDISMODULE_ATTR ;
1106
1112
REDISMODULE_API int (* RedisModule_GetContextFlags )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
1107
- REDISMODULE_API int (* RedisModule_AvoidReplicaTraffic )() REDISMODULE_ATTR ;
1113
+ REDISMODULE_API int (* RedisModule_AvoidReplicaTraffic )(void ) REDISMODULE_ATTR ;
1108
1114
REDISMODULE_API void * (* RedisModule_PoolAlloc )(RedisModuleCtx * ctx , size_t bytes ) REDISMODULE_ATTR ;
1109
1115
REDISMODULE_API RedisModuleType * (* RedisModule_CreateDataType )(RedisModuleCtx * ctx , const char * name , int encver , RedisModuleTypeMethods * typemethods ) REDISMODULE_ATTR ;
1110
1116
REDISMODULE_API int (* RedisModule_ModuleTypeSetValue )(RedisModuleKey * key , RedisModuleType * mt , void * value ) REDISMODULE_ATTR ;
@@ -1207,17 +1213,17 @@ REDISMODULE_API RedisModuleBlockedClient * (*RedisModule_BlockClientOnKeys)(Redi
1207
1213
REDISMODULE_API RedisModuleBlockedClient * (* RedisModule_BlockClientOnKeysWithFlags )(RedisModuleCtx * ctx , RedisModuleCmdFunc reply_callback , RedisModuleCmdFunc timeout_callback , void (* free_privdata )(RedisModuleCtx * ,void * ), long long timeout_ms , RedisModuleString * * keys , int numkeys , void * privdata , int flags ) REDISMODULE_ATTR ;
1208
1214
REDISMODULE_API void (* RedisModule_SignalKeyAsReady )(RedisModuleCtx * ctx , RedisModuleString * key ) REDISMODULE_ATTR ;
1209
1215
REDISMODULE_API RedisModuleString * (* RedisModule_GetBlockedClientReadyKey )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
1210
- REDISMODULE_API RedisModuleScanCursor * (* RedisModule_ScanCursorCreate )() REDISMODULE_ATTR ;
1216
+ REDISMODULE_API RedisModuleScanCursor * (* RedisModule_ScanCursorCreate )(void ) REDISMODULE_ATTR ;
1211
1217
REDISMODULE_API void (* RedisModule_ScanCursorRestart )(RedisModuleScanCursor * cursor ) REDISMODULE_ATTR ;
1212
1218
REDISMODULE_API void (* RedisModule_ScanCursorDestroy )(RedisModuleScanCursor * cursor ) REDISMODULE_ATTR ;
1213
1219
REDISMODULE_API int (* RedisModule_Scan )(RedisModuleCtx * ctx , RedisModuleScanCursor * cursor , RedisModuleScanCB fn , void * privdata ) REDISMODULE_ATTR ;
1214
1220
REDISMODULE_API int (* RedisModule_ScanKey )(RedisModuleKey * key , RedisModuleScanCursor * cursor , RedisModuleScanKeyCB fn , void * privdata ) REDISMODULE_ATTR ;
1215
- REDISMODULE_API int (* RedisModule_GetContextFlagsAll )() REDISMODULE_ATTR ;
1216
- REDISMODULE_API int (* RedisModule_GetModuleOptionsAll )() REDISMODULE_ATTR ;
1217
- REDISMODULE_API int (* RedisModule_GetKeyspaceNotificationFlagsAll )() REDISMODULE_ATTR ;
1221
+ REDISMODULE_API int (* RedisModule_GetContextFlagsAll )(void ) REDISMODULE_ATTR ;
1222
+ REDISMODULE_API int (* RedisModule_GetModuleOptionsAll )(void ) REDISMODULE_ATTR ;
1223
+ REDISMODULE_API int (* RedisModule_GetKeyspaceNotificationFlagsAll )(void ) REDISMODULE_ATTR ;
1218
1224
REDISMODULE_API int (* RedisModule_IsSubEventSupported )(RedisModuleEvent event , uint64_t subevent ) REDISMODULE_ATTR ;
1219
- REDISMODULE_API int (* RedisModule_GetServerVersion )() REDISMODULE_ATTR ;
1220
- REDISMODULE_API int (* RedisModule_GetTypeMethodVersion )() REDISMODULE_ATTR ;
1225
+ REDISMODULE_API int (* RedisModule_GetServerVersion )(void ) REDISMODULE_ATTR ;
1226
+ REDISMODULE_API int (* RedisModule_GetTypeMethodVersion )(void ) REDISMODULE_ATTR ;
1221
1227
REDISMODULE_API void (* RedisModule_Yield )(RedisModuleCtx * ctx , int flags , const char * busy_reply ) REDISMODULE_ATTR ;
1222
1228
REDISMODULE_API RedisModuleBlockedClient * (* RedisModule_BlockClient )(RedisModuleCtx * ctx , RedisModuleCmdFunc reply_callback , RedisModuleCmdFunc timeout_callback , void (* free_privdata )(RedisModuleCtx * ,void * ), long long timeout_ms ) REDISMODULE_ATTR ;
1223
1229
REDISMODULE_API void * (* RedisModule_BlockClientGetPrivateData )(RedisModuleBlockedClient * blocked_client ) REDISMODULE_ATTR ;
@@ -1240,7 +1246,7 @@ REDISMODULE_API void (*RedisModule_ThreadSafeContextUnlock)(RedisModuleCtx *ctx)
1240
1246
REDISMODULE_API int (* RedisModule_SubscribeToKeyspaceEvents )(RedisModuleCtx * ctx , int types , RedisModuleNotificationFunc cb ) REDISMODULE_ATTR ;
1241
1247
REDISMODULE_API int (* RedisModule_AddPostNotificationJob )(RedisModuleCtx * ctx , RedisModulePostNotificationJobFunc callback , void * pd , void (* free_pd )(void * )) REDISMODULE_ATTR ;
1242
1248
REDISMODULE_API int (* RedisModule_NotifyKeyspaceEvent )(RedisModuleCtx * ctx , int type , const char * event , RedisModuleString * key ) REDISMODULE_ATTR ;
1243
- REDISMODULE_API int (* RedisModule_GetNotifyKeyspaceEvents )() REDISMODULE_ATTR ;
1249
+ REDISMODULE_API int (* RedisModule_GetNotifyKeyspaceEvents )(void ) REDISMODULE_ATTR ;
1244
1250
REDISMODULE_API int (* RedisModule_BlockedClientDisconnected )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
1245
1251
REDISMODULE_API void (* RedisModule_RegisterClusterMessageReceiver )(RedisModuleCtx * ctx , uint8_t type , RedisModuleClusterMessageReceiver callback ) REDISMODULE_ATTR ;
1246
1252
REDISMODULE_API int (* RedisModule_SendClusterMessage )(RedisModuleCtx * ctx , const char * target_id , uint8_t type , const char * msg , uint32_t len ) REDISMODULE_ATTR ;
@@ -1256,6 +1262,8 @@ REDISMODULE_API void (*RedisModule_GetRandomBytes)(unsigned char *dst, size_t le
1256
1262
REDISMODULE_API void (* RedisModule_GetRandomHexChars )(char * dst , size_t len ) REDISMODULE_ATTR ;
1257
1263
REDISMODULE_API void (* RedisModule_SetDisconnectCallback )(RedisModuleBlockedClient * bc , RedisModuleDisconnectFunc callback ) REDISMODULE_ATTR ;
1258
1264
REDISMODULE_API void (* RedisModule_SetClusterFlags )(RedisModuleCtx * ctx , uint64_t flags ) REDISMODULE_ATTR ;
1265
+ REDISMODULE_API unsigned int (* RedisModule_ClusterKeySlot )(RedisModuleString * key ) REDISMODULE_ATTR ;
1266
+ REDISMODULE_API const char * (* RedisModule_ClusterCanonicalKeyNameInSlot )(unsigned int slot ) REDISMODULE_ATTR ;
1259
1267
REDISMODULE_API int (* RedisModule_ExportSharedAPI )(RedisModuleCtx * ctx , const char * apiname , void * func ) REDISMODULE_ATTR ;
1260
1268
REDISMODULE_API void * (* RedisModule_GetSharedAPI )(RedisModuleCtx * ctx , const char * apiname ) REDISMODULE_ATTR ;
1261
1269
REDISMODULE_API RedisModuleCommandFilter * (* RedisModule_RegisterCommandFilter )(RedisModuleCtx * ctx , RedisModuleCommandFilterFunc cb , int flags ) REDISMODULE_ATTR ;
@@ -1265,11 +1273,12 @@ REDISMODULE_API RedisModuleString * (*RedisModule_CommandFilterArgGet)(RedisModu
1265
1273
REDISMODULE_API int (* RedisModule_CommandFilterArgInsert )(RedisModuleCommandFilterCtx * fctx , int pos , RedisModuleString * arg ) REDISMODULE_ATTR ;
1266
1274
REDISMODULE_API int (* RedisModule_CommandFilterArgReplace )(RedisModuleCommandFilterCtx * fctx , int pos , RedisModuleString * arg ) REDISMODULE_ATTR ;
1267
1275
REDISMODULE_API int (* RedisModule_CommandFilterArgDelete )(RedisModuleCommandFilterCtx * fctx , int pos ) REDISMODULE_ATTR ;
1276
+ REDISMODULE_API unsigned long long (* RedisModule_CommandFilterGetClientId )(RedisModuleCommandFilterCtx * fctx ) REDISMODULE_ATTR ;
1268
1277
REDISMODULE_API int (* RedisModule_Fork )(RedisModuleForkDoneHandler cb , void * user_data ) REDISMODULE_ATTR ;
1269
1278
REDISMODULE_API void (* RedisModule_SendChildHeartbeat )(double progress ) REDISMODULE_ATTR ;
1270
1279
REDISMODULE_API int (* RedisModule_ExitFromChild )(int retcode ) REDISMODULE_ATTR ;
1271
1280
REDISMODULE_API int (* RedisModule_KillForkChild )(int child_pid ) REDISMODULE_ATTR ;
1272
- REDISMODULE_API float (* RedisModule_GetUsedMemoryRatio )() REDISMODULE_ATTR ;
1281
+ REDISMODULE_API float (* RedisModule_GetUsedMemoryRatio )(void ) REDISMODULE_ATTR ;
1273
1282
REDISMODULE_API size_t (* RedisModule_MallocSize )(void * ptr ) REDISMODULE_ATTR ;
1274
1283
REDISMODULE_API size_t (* RedisModule_MallocUsableSize )(void * ptr ) REDISMODULE_ATTR ;
1275
1284
REDISMODULE_API size_t (* RedisModule_MallocSizeString )(RedisModuleString * str ) REDISMODULE_ATTR ;
@@ -1311,6 +1320,10 @@ REDISMODULE_API int (*RedisModule_RegisterNumericConfig)(RedisModuleCtx *ctx, co
1311
1320
REDISMODULE_API int (* RedisModule_RegisterStringConfig )(RedisModuleCtx * ctx , const char * name , const char * default_val , unsigned int flags , RedisModuleConfigGetStringFunc getfn , RedisModuleConfigSetStringFunc setfn , RedisModuleConfigApplyFunc applyfn , void * privdata ) REDISMODULE_ATTR ;
1312
1321
REDISMODULE_API int (* RedisModule_RegisterEnumConfig )(RedisModuleCtx * ctx , const char * name , int default_val , unsigned int flags , const char * * enum_values , const int * int_values , int num_enum_vals , RedisModuleConfigGetEnumFunc getfn , RedisModuleConfigSetEnumFunc setfn , RedisModuleConfigApplyFunc applyfn , void * privdata ) REDISMODULE_ATTR ;
1313
1322
REDISMODULE_API int (* RedisModule_LoadConfigs )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
1323
+ REDISMODULE_API RedisModuleRdbStream * (* RedisModule_RdbStreamCreateFromFile )(const char * filename ) REDISMODULE_ATTR ;
1324
+ REDISMODULE_API void (* RedisModule_RdbStreamFree )(RedisModuleRdbStream * stream ) REDISMODULE_ATTR ;
1325
+ REDISMODULE_API int (* RedisModule_RdbLoad )(RedisModuleCtx * ctx , RedisModuleRdbStream * stream , int flags ) REDISMODULE_ATTR ;
1326
+ REDISMODULE_API int (* RedisModule_RdbSave )(RedisModuleCtx * ctx , RedisModuleRdbStream * stream , int flags ) REDISMODULE_ATTR ;
1314
1327
1315
1328
#define RedisModule_IsAOFClient (id ) ((id ) == UINT64_MAX )
1316
1329
@@ -1326,18 +1339,23 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
1326
1339
REDISMODULE_GET_API (Alloc );
1327
1340
REDISMODULE_GET_API (TryAlloc );
1328
1341
REDISMODULE_GET_API (Calloc );
1342
+ REDISMODULE_GET_API (TryCalloc );
1329
1343
REDISMODULE_GET_API (Free );
1330
1344
REDISMODULE_GET_API (Realloc );
1345
+ REDISMODULE_GET_API (TryRealloc );
1331
1346
REDISMODULE_GET_API (Strdup );
1332
1347
REDISMODULE_GET_API (CreateCommand );
1333
1348
REDISMODULE_GET_API (GetCommand );
1334
1349
REDISMODULE_GET_API (CreateSubcommand );
1335
1350
REDISMODULE_GET_API (SetCommandInfo );
1351
+ REDISMODULE_GET_API (SetCommandACLCategories );
1352
+ REDISMODULE_GET_API (AddACLCategory );
1336
1353
REDISMODULE_GET_API (SetModuleAttribs );
1337
1354
REDISMODULE_GET_API (IsModuleNameBusy );
1338
1355
REDISMODULE_GET_API (WrongArity );
1339
1356
REDISMODULE_GET_API (ReplyWithLongLong );
1340
1357
REDISMODULE_GET_API (ReplyWithError );
1358
+ REDISMODULE_GET_API (ReplyWithErrorFormat );
1341
1359
REDISMODULE_GET_API (ReplyWithSimpleString );
1342
1360
REDISMODULE_GET_API (ReplyWithArray );
1343
1361
REDISMODULE_GET_API (ReplyWithMap );
@@ -1614,6 +1632,8 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
1614
1632
REDISMODULE_GET_API (GetRandomBytes );
1615
1633
REDISMODULE_GET_API (GetRandomHexChars );
1616
1634
REDISMODULE_GET_API (SetClusterFlags );
1635
+ REDISMODULE_GET_API (ClusterKeySlot );
1636
+ REDISMODULE_GET_API (ClusterCanonicalKeyNameInSlot );
1617
1637
REDISMODULE_GET_API (ExportSharedAPI );
1618
1638
REDISMODULE_GET_API (GetSharedAPI );
1619
1639
REDISMODULE_GET_API (RegisterCommandFilter );
@@ -1623,6 +1643,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
1623
1643
REDISMODULE_GET_API (CommandFilterArgInsert );
1624
1644
REDISMODULE_GET_API (CommandFilterArgReplace );
1625
1645
REDISMODULE_GET_API (CommandFilterArgDelete );
1646
+ REDISMODULE_GET_API (CommandFilterGetClientId );
1626
1647
REDISMODULE_GET_API (Fork );
1627
1648
REDISMODULE_GET_API (SendChildHeartbeat );
1628
1649
REDISMODULE_GET_API (ExitFromChild );
@@ -1669,6 +1690,11 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
1669
1690
REDISMODULE_GET_API (RegisterStringConfig );
1670
1691
REDISMODULE_GET_API (RegisterEnumConfig );
1671
1692
REDISMODULE_GET_API (LoadConfigs );
1693
+ REDISMODULE_GET_API (RdbStreamCreateFromFile );
1694
+ REDISMODULE_GET_API (RdbStreamFree );
1695
+ REDISMODULE_GET_API (RdbLoad );
1696
+ REDISMODULE_GET_API (RdbSave );
1697
+
1672
1698
1673
1699
#ifdef REDISMODULE_RLEC_API_DEFS
1674
1700
REDISMODULE_RLEC_API_DEFS
0 commit comments