đ´ Redis API â
Full IORedis-compatible command surface. Unknown method names are forwarded as registered custom hooks.
Connection â
ping â
Health check; returns PONG.
ping(): Promise<string>const redis = zedgi.redis();
const pong = await redis.ping(); // 'PONG'redis = zedgi.redis()
pong = redis.ping() # 'PONG'POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "ping",
"payload": {
"args": []
}
}Strings â
get â
Get the string value of a key.
get(key): Promise<string | null>const redis = zedgi.redis();
const v = await redis.get('user:1:name');redis = zedgi.redis()
v = redis.get('user:1:name')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "get",
"payload": {
"args": [
"user:1:name"
]
}
}set â
Set the string value of a key. Extra args map to Redis options (EX, NXâĻ).
set(key, value, ...opts)const redis = zedgi.redis();
await redis.set('session:abc', token, 'EX', 3600);redis = zedgi.redis()
redis.set('session:abc', token, 'EX', 3600)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "set",
"payload": {
"args": [
"session:abc",
"token",
"EX",
3600
]
}
}append â
Append a value to a key.
append(key, value): Promise<number>const redis = zedgi.redis();
await redis.append('log', 'line\n');redis = zedgi.redis()
redis.call('APPEND', 'log', 'line\n')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "append",
"payload": {
"args": [
"log",
"line\n"
]
}
}incr â
Increment the integer value of a key by one.
incr(key): Promise<number>const redis = zedgi.redis();
const n = await redis.incr('views');redis = zedgi.redis()
n = redis.incr('views')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "incr",
"payload": {
"args": [
"views"
]
}
}incrby â
Increment the integer value of a key by the given amount.
incrby(key, amount): Promise<number>const redis = zedgi.redis();
await redis.incrby('score', 10);redis = zedgi.redis()
redis.call('INCRBY', 'score', 10)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "incrby",
"payload": {
"args": [
"score",
10
]
}
}decr â
Decrement the integer value of a key by one.
decr(key): Promise<number>const redis = zedgi.redis();
await redis.decr('stock');redis = zedgi.redis()
redis.call('DECR', 'stock')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "decr",
"payload": {
"args": [
"stock"
]
}
}mget â
Get the values of multiple keys.
mget(...keys): Promise<(string|null)[]>const redis = zedgi.redis();
await redis.call('MGET', 'a', 'b', 'c');redis = zedgi.redis()
redis.call('MGET', 'a', 'b', 'c')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "mget",
"payload": {
"args": [
"a",
"b",
"c"
]
}
}setex â
Set a key with an expiry in seconds.
setex(key, seconds, value)const redis = zedgi.redis();
await redis.call('SETEX', 'otp', 300, code);redis = zedgi.redis()
redis.call('SETEX', 'otp', 300, code)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "setex",
"payload": {
"args": [
"otp",
300,
"code"
]
}
}Keys â
del â
Delete one or more keys.
del(...keys): Promise<number>const redis = zedgi.redis();
await redis.del('cache:home', 'cache:about');redis = zedgi.redis()
redis.delete('cache:home', 'cache:about')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "del",
"payload": {
"args": [
"cache:home",
"cache:about"
]
}
}exists â
Check whether one or more keys exist.
exists(...keys): Promise<number>const redis = zedgi.redis();
await redis.exists('user:1');redis = zedgi.redis()
redis.call('EXISTS', 'user:1')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "exists",
"payload": {
"args": [
"user:1"
]
}
}expire â
Set a keyâs time-to-live in seconds.
expire(key, seconds): Promise<number>const redis = zedgi.redis();
await redis.expire('session:abc', 3600);redis = zedgi.redis()
redis.expire('session:abc', 3600)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "expire",
"payload": {
"args": [
"session:abc",
3600
]
}
}ttl â
Get the remaining time-to-live of a key.
ttl(key): Promise<number>const redis = zedgi.redis();
const ttl = await redis.ttl('session:abc');redis = zedgi.redis()
ttl = redis.call('TTL', 'session:abc')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "ttl",
"payload": {
"args": [
"session:abc"
]
}
}keys â
Find all keys matching a pattern (use sparingly).
keys(pattern): Promise<string[]>const redis = zedgi.redis();
await redis.call('KEYS', 'user:*');redis = zedgi.redis()
redis.call('KEYS', 'user:*')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "keys",
"payload": {
"args": [
"user:*"
]
}
}type â
Get the data type stored at a key.
type(key): Promise<string>const redis = zedgi.redis();
await redis.call('TYPE', 'mylist');redis = zedgi.redis()
redis.call('TYPE', 'mylist')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "type",
"payload": {
"args": [
"mylist"
]
}
}Hashes â
hset â
Set field-value pairs in a hash.
hset(key, ...fieldValues): Promise<number>const redis = zedgi.redis();
await redis.hset('user:1', 'name', 'Ada', 'age', '36');redis = zedgi.redis()
redis.call('HSET', 'user:1', 'name', 'Ada')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "hset",
"payload": {
"args": [
"user:1",
"name",
"Ada",
"age",
"36"
]
}
}hget â
Get the value of a hash field.
hget(key, field): Promise<string | null>const redis = zedgi.redis();
await redis.hget('user:1', 'name');redis = zedgi.redis()
redis.hget('user:1', 'name')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "hget",
"payload": {
"args": [
"user:1",
"name"
]
}
}hgetall â
Get all fields and values of a hash.
hgetall(key): Promise<Record<string,string>>const redis = zedgi.redis();
const u = await redis.hgetall('user:1');redis = zedgi.redis()
u = redis.hgetall('user:1')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "hgetall",
"payload": {
"args": [
"user:1"
]
}
}hdel â
Delete one or more hash fields.
hdel(key, ...fields): Promise<number>const redis = zedgi.redis();
await redis.hdel('user:1', 'age');redis = zedgi.redis()
redis.call('HDEL', 'user:1', 'age')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "hdel",
"payload": {
"args": [
"user:1",
"age"
]
}
}hincrby â
Increment a hash field by an integer.
hincrby(key, field, amount)const redis = zedgi.redis();
await redis.call('HINCRBY', 'user:1', 'logins', 1);redis = zedgi.redis()
redis.call('HINCRBY', 'user:1', 'logins', 1)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "hincrby",
"payload": {
"args": [
"user:1",
"logins",
1
]
}
}Lists â
lpush â
Prepend one or more values to a list.
lpush(key, ...values): Promise<number>const redis = zedgi.redis();
await redis.lpush('queue', job);redis = zedgi.redis()
redis.call('LPUSH', 'queue', job)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "lpush",
"payload": {
"args": [
"queue",
"job"
]
}
}rpush â
Append one or more values to a list.
rpush(key, ...values): Promise<number>const redis = zedgi.redis();
await redis.rpush('queue', job);redis = zedgi.redis()
redis.call('RPUSH', 'queue', job)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "rpush",
"payload": {
"args": [
"queue",
"job"
]
}
}lpop â
Remove and return the first element of a list.
lpop(key): Promise<string | null>const redis = zedgi.redis();
const job = await redis.lpop('queue');redis = zedgi.redis()
job = redis.call('LPOP', 'queue')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "lpop",
"payload": {
"args": [
"queue"
]
}
}lrange â
Get a range of elements from a list.
lrange(key, start, stop): Promise<string[]>const redis = zedgi.redis();
await redis.lrange('queue', 0, -1);redis = zedgi.redis()
redis.lrange('queue', 0, -1)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "lrange",
"payload": {
"args": [
"queue",
0,
-1
]
}
}llen â
Get the length of a list.
llen(key): Promise<number>const redis = zedgi.redis();
await redis.call('LLEN', 'queue');redis = zedgi.redis()
redis.call('LLEN', 'queue')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "llen",
"payload": {
"args": [
"queue"
]
}
}Sets â
sadd â
Add one or more members to a set.
sadd(key, ...members): Promise<number>const redis = zedgi.redis();
await redis.sadd('tags', 'edge', 'redis');redis = zedgi.redis()
redis.call('SADD', 'tags', 'edge')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "sadd",
"payload": {
"args": [
"tags",
"edge",
"redis"
]
}
}smembers â
Get all members of a set.
smembers(key): Promise<string[]>const redis = zedgi.redis();
await redis.smembers('tags');redis = zedgi.redis()
redis.call('SMEMBERS', 'tags')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "smembers",
"payload": {
"args": [
"tags"
]
}
}sismember â
Check whether a value is a set member.
sismember(key, member): Promise<number>const redis = zedgi.redis();
await redis.sismember('tags', 'edge');redis = zedgi.redis()
redis.call('SISMEMBER', 'tags', 'edge')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "sismember",
"payload": {
"args": [
"tags",
"edge"
]
}
}Sorted Sets â
zadd â
Add a member with a score to a sorted set.
zadd(key, score, member): Promise<number>const redis = zedgi.redis();
await redis.zadd('leaderboard', 100, 'ada');redis = zedgi.redis()
redis.call('ZADD', 'leaderboard', 100, 'ada')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "zadd",
"payload": {
"args": [
"leaderboard",
100,
"ada"
]
}
}zrange â
Return a range of members by index.
zrange(key, start, stop): Promise<string[]>const redis = zedgi.redis();
await redis.zrange('leaderboard', 0, 9);redis = zedgi.redis()
redis.call('ZRANGE', 'leaderboard', 0, 9)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "zrange",
"payload": {
"args": [
"leaderboard",
0,
9
]
}
}zscore â
Get the score of a member.
zscore(key, member): Promise<string | null>const redis = zedgi.redis();
await redis.zscore('leaderboard', 'ada');redis = zedgi.redis()
redis.call('ZSCORE', 'leaderboard', 'ada')POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "zscore",
"payload": {
"args": [
"leaderboard",
"ada"
]
}
}Advanced â
call â
Run any Redis command not exposed as a named method.
call(command, ...args): Promise<unknown>const redis = zedgi.redis();
await redis.call('SET', 'k', 'v', 'EX', 60);redis = zedgi.redis()
redis.call('SET', 'k', 'v', 'EX', 60)POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "call",
"payload": {
"command": "SET",
"args": [
"k",
"v",
"EX",
60
]
}
}pipeline â
Run several commands in one round-trip (no transaction).
pipeline(commands): Promise<unknown[]>const redis = zedgi.redis();
await redis.pipeline([
{ command: 'SET', args: ['a', '1'] },
{ command: 'INCR', args: ['a'] },
]);redis = zedgi.redis()
redis._t.call('redis', 'pipeline', {
'commands': [
{'command': 'SET', 'args': ['a', '1']},
{'command': 'INCR', 'args': ['a']},
]
})POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "pipeline",
"payload": {
"commands": [
{
"command": "SET",
"args": [
"a",
"1"
]
},
{
"command": "INCR",
"args": [
"a"
]
}
]
}
}multi â
Run several commands atomically in a MULTI/EXEC transaction.
multi(commands): Promise<unknown[]>const redis = zedgi.redis();
await redis.multi([
{ command: 'INCR', args: ['orders'] },
{ command: 'RPUSH', args: ['order:log', 'new'] },
]);redis = zedgi.redis()
redis._t.call('redis', 'multi', {
'commands': [
{'command': 'INCR', 'args': ['orders']},
{'command': 'RPUSH', 'args': ['order:log', 'new']},
]
})POST /rpc HTTP/1.1
Host: dev123.zedgi.app
x-zedgi-key: zk_live_xxx
content-type: application/json
{
"service": "redis",
"method": "multi",
"payload": {
"commands": [
{
"command": "INCR",
"args": [
"orders"
]
},
{
"command": "RPUSH",
"args": [
"order:log",
"new"
]
}
]
}
}