Skip to main content

Redis in Macrometa

The data store that Macrometa provides is compatible with almost all Redis API use cases.

note

This is a beta feature.

Capabilities​

Because of its fast performance, Redis is a popular choice for:

  • caching
  • session management
  • gaming
  • leaderboards
  • real-time analytics
  • geospatial apps
  • ride-hailing apps
  • chat/messaging apps
  • media streaming apps
  • pub/sub apps

Supported Commands​

Macrometa supports Redis client protocol up to version 6.2. Following table shows the list of supported Redis commands:

FeatureSupportedSupported commands
StringYes- APPEND - DECR - DECRBY - GET - GETDEL - GETEX - GETRANGE - GETSET - INCR - INCRBY - INCRBYFLOAT - MGET - MSET - MSETNX - PSETEX - SET - SETBIT - SETEX - SETNX - SETRANGE - STRLEN - BITCOUNT - BITOP - BITPOS - GETBIT
HashYes- HDEL - HEXISTS - HGET - HGETALL - HINCRBY - HINCRBYFLOAT - HKEYS - HLEN - HMGET - HMSET - HSCAN - HSET - HSETNX - HSTRLEN - HRANDFIELD - HVALS
ListYes- LINDEX - LINSERT - LLEN - LMOVE - LPOP - LPOS - LPUSH - LPUSHX - LRANGE - LREM - LSET - LTRIM - RPOP - RPOPLPUSH - RPUSH - RPUSHX
SetYes- SADD - SCARD - SDIFF - SDIFFSTORE - SINTER - SINTERSTORE - SISMEMBER - SMEMBERS - SMISMEMBER - SMOVE - SPOP - SRANDMEMBER - SREM - SSCAN - SUNION - SUNIONSTORE
SortedSetYes- ZADD - ZCARD - ZCOUNT - ZDIFF - ZDIFFSTORE - ZINCRBY - ZINTER - ZINTERSTORE - ZLEXCOUNT - ZMSCORE - ZPOPMAX - ZPOPMIN - ZRANDMEMBER - ZRANGE - ZRANGEBYLEX - ZRANGEBYSCORE - ZRANGESTORE - ZRANK - ZREM - ZREMRANGEBYLEX - ZREMRANGEBYRANK - ZREMRANGEBYSCORE - ZREVRANGE - ZREVRANGEBYLEX - ZREVRANGEBYSCORE - ZREVRANK - ZSCAN - ZSCORE - ZUNION - ZUNIONSTORE
GenericYes- COPY - DEL - EXISTS - EXPIRE - EXPIREAT - PERSIST - PEXPIRE - PEXPIREAT - PTTL - RANDOMKEY - RENAME - RENAMENX - SCAN - TTL - TYPE - UNLINK
ServerYes- ECHO - PING - PIPELINE - DBSIZE - FLUSHDB - TIME

Limitations​

Our platform has limitation on certan commands. Commands that are mentioned below return different result in some edge cases.

SETRANGE​

SETRANGE returns different value than redis server when offset of the command is greater than the length of string value.

First we set string value that has key foo.

[
"SET",
"foo",
"Macrometa GDN"
]

When we use SETRANGE on that same key with index that is greater than 13 the result will be different that redis server.

[
"SETRANGE",
"foo_21",
18,
"Global Data Network"
]

Response of Macrometa platform:

{
"code": 200,
"result": 32
}

Response from Redis server: (integer) 37