Skip to content

Command Comparison Chart

Below is a comprehensive chart comparing common Redis commands between ioredis and Valkey GLIDE:

CommandioredisValkey GLIDE
Connectnew Redis()GlideClient.createClient({addresses: [{host: "localhost", port: 6379 }]})
Clusternew Redis.Cluster([])GlideClusterClient.createClient({addresses: [{ host: "127.0.0.1", port: 6379 }, { host: "127.0.0.1", port: 6380 }]})
Authredis.auth('pass')client.updateConnectionPassword('pass')
Select DBredis.select(1)client.select(1)
CommandioredisValkey GLIDE
SETredis.set('key', 'val')client.set('key', 'val')
GETredis.get('key')client.get('key')
SETEXredis.setex('key', 10, 'val')client.set('key', 'val', {expiry: {type: TimeUnit.Seconds, count: 10}})
SETNXredis.setnx('key', 'val')client.set("key", "value", {conditionalSet: "onlyIfDoesNotExist"})
MSETredis.mset({key1: 'val1'})client.mset({key1: 'val1'})
MGETredis.mget('key1', 'key2')client.mget(['key1', 'key2'])
INCRredis.incr('counter')client.incr('counter')
DECRredis.decr('counter')client.decr('counter')
INCRBYredis.incrby('counter', 5)client.incrBy('counter', 5)
DECRBYredis.decrby('counter', 5)client.decrBy('counter', 5)
APPENDredis.append('key', 'val')client.append('key', 'val')
GETRANGEredis.getrange('key', 0, 3)client.getRange('key', 0, 3)
SETRANGEredis.setrange('key', 0, 'val')client.setRange('key', 0, 'val')
CommandioredisValkey GLIDE
DELredis.del('key1', 'key2')client.del(['key1', 'key2'])
EXISTSredis.exists('key1', 'key2')client.exists(['key1', 'key2'])
EXPIREredis.expire('key', 10)client.expire('key', 10)
TTLredis.ttl('key')client.ttl('key')
KEYSredis.keys('pattern')client.keys('pattern')
SCANredis.scan('0')client.scan('0')
RENAMEredis.rename('old', 'new')client.rename('old', 'new')
RENAMENXredis.renamenx('old', 'new')client.renameNx('old', 'new')
CommandioredisValkey GLIDE
HSETredis.hset('hash', 'k1', 'v1', 'k2', 'v2')client.hset('hash', {k1: 'v1', k2: 'v2'})
HGETredis.hget('hash', 'field')client.hget('hash', 'field')
HMSETredis.hmset('hash', {k1: 'v1'})client.hset('hash', {k1: 'v1'})
HMGETredis.hmget('hash', 'k1', 'k2')client.hmget('hash', ['k1', 'k2'])
HGETALLredis.hgetall('hash')client.hgetall('hash')
HDELredis.hdel('hash', 'k1', 'k2')client.hdel('hash', ['k1', 'k2'])
HEXISTSredis.hexists('hash', 'field')client.hexists('hash', 'field')
CommandioredisValkey GLIDE
LPUSHredis.lpush('list', 'a', 'b')client.lpush('list', ['a', 'b'])
RPUSHredis.rpush('list', 'a', 'b')client.rpush('list', ['a', 'b'])
LPOPredis.lpop('list')client.lpop('list')
RPOPredis.rpop('list')client.rpop('list')
LRANGEredis.lrange('list', 0, -1)client.lrange('list', 0, -1)
CommandioredisValkey GLIDE
SADDredis.sadd('set', 'a', 'b')client.sadd('set', ['a', 'b'])
SMEMBERSredis.smembers('set')client.smembers('set')
SREMredis.srem('set', 'a', 'b')client.srem('set', ['a', 'b'])
SISMEMBERredis.sismember('set', 'a')client.sismember('set', 'a')
CommandioredisValkey GLIDE
ZADDredis.zadd('zset', 1, 'a', 2, 'b')client.zadd('zset', [{score: 1, member: 'a'}, {score: 2, member: 'b'}])
ZRANGEredis.zrange('zset', 0, -1)client.zrange('zset', 0, -1)
ZRANGE with scoresredis.zrange('zset', 0, -1, 'WITHSCORES')client.zrange('zset', 0, -1, {withScores: true})
ZREMredis.zrem('zset', 'a', 'b')client.zrem('zset', ['a', 'b'])
ZSCOREredis.zscore('zset', 'a')client.zscore('zset', 'a')
ZRANKredis.zrank('zset', 'a')client.zrank('zset', 'a')
ZREVRANKredis.zrevrank('zset', 'a')client.zrevrank('zset', 'a')
CommandioredisValkey GLIDE
MULTI/EXECredis.multi().set('k', 'v').get('k').exec()client.exec(new Transaction().set('k', 'v').get('k'))
CommandioredisValkey GLIDE
EVALredis.eval(script, numKeys, ...keysAndArgs)client.invokeScript(new Script(script), {keys: [], args: []})
EVALSHAredis.evalsha(sha, numKeys, ...keysAndArgs)client.invokeScript(new Script(script), {keys: [], args: []})
CommandioredisValkey GLIDE
Raw Commandredis.call('SET', 'key', 'value')client.customCommand(['SET', 'key', 'value'])
CommandioredisValkey GLIDE
Closeredis.disconnect()client.close()