mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 00:28:26 -05:00
Module cluster flags: use RM_SetClusterFlags() in the example.
This commit is contained in:
parent
3213e8de92
commit
0d6f11f4d1
@ -4151,6 +4151,7 @@ int RM_GetClusterNodeInfo(RedisModuleCtx *ctx, const char *id, char *ip, char *m
|
|||||||
* Slots informations will still be propagated across the
|
* Slots informations will still be propagated across the
|
||||||
* cluster, but without effects. */
|
* cluster, but without effects. */
|
||||||
void RM_SetClusterFlags(RedisModuleCtx *ctx, uint64_t flags) {
|
void RM_SetClusterFlags(RedisModuleCtx *ctx, uint64_t flags) {
|
||||||
|
UNUSED(ctx);
|
||||||
if (flags & REDISMODULE_CLUSTER_FLAG_NO_FAILOVER)
|
if (flags & REDISMODULE_CLUSTER_FLAG_NO_FAILOVER)
|
||||||
server.cluster_module_flags |= CLUSTER_MODULE_FLAG_NO_FAILOVER;
|
server.cluster_module_flags |= CLUSTER_MODULE_FLAG_NO_FAILOVER;
|
||||||
if (flags & REDISMODULE_CLUSTER_FLAG_NO_REDIRECTION)
|
if (flags & REDISMODULE_CLUSTER_FLAG_NO_REDIRECTION)
|
||||||
|
@ -77,6 +77,7 @@ void PingReceiver(RedisModuleCtx *ctx, const char *sender_id, uint8_t type, cons
|
|||||||
RedisModule_Log(ctx,"notice","PING (type %d) RECEIVED from %.*s: '%.*s'",
|
RedisModule_Log(ctx,"notice","PING (type %d) RECEIVED from %.*s: '%.*s'",
|
||||||
type,REDISMODULE_NODE_ID_LEN,sender_id,(int)len, payload);
|
type,REDISMODULE_NODE_ID_LEN,sender_id,(int)len, payload);
|
||||||
RedisModule_SendClusterMessage(ctx,NULL,MSGTYPE_PONG,(unsigned char*)"Ohi!",4);
|
RedisModule_SendClusterMessage(ctx,NULL,MSGTYPE_PONG,(unsigned char*)"Ohi!",4);
|
||||||
|
RedisModule_Call(ctx, "INCR", "c", "pings_received");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Callback for message MSGTYPE_PONG. */
|
/* Callback for message MSGTYPE_PONG. */
|
||||||
@ -102,6 +103,15 @@ int RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc)
|
|||||||
ListCommand_RedisCommand,"readonly",0,0,0) == REDISMODULE_ERR)
|
ListCommand_RedisCommand,"readonly",0,0,0) == REDISMODULE_ERR)
|
||||||
return REDISMODULE_ERR;
|
return REDISMODULE_ERR;
|
||||||
|
|
||||||
|
/* Disable Redis Cluster sharding and redirections. This way every node
|
||||||
|
* will be able to access every possible key, regardless of the hash slot.
|
||||||
|
* This way the PING message handler will be able to increment a specific
|
||||||
|
* variable. Normally you do that in order for the distributed system
|
||||||
|
* you create as a module to have total freedom in the keyspace
|
||||||
|
* manipulation. */
|
||||||
|
RedisModule_SetClusterFlags(ctx,REDISMODULE_CLUSTER_FLAG_NO_REDIRECTION);
|
||||||
|
|
||||||
|
/* Register our handlers for different message types. */
|
||||||
RedisModule_RegisterClusterMessageReceiver(ctx,MSGTYPE_PING,PingReceiver);
|
RedisModule_RegisterClusterMessageReceiver(ctx,MSGTYPE_PING,PingReceiver);
|
||||||
RedisModule_RegisterClusterMessageReceiver(ctx,MSGTYPE_PONG,PongReceiver);
|
RedisModule_RegisterClusterMessageReceiver(ctx,MSGTYPE_PONG,PongReceiver);
|
||||||
return REDISMODULE_OK;
|
return REDISMODULE_OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user