@upstash/redis 1.40.0 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/{chunk-RLVWMRRX.mjs → chunk-CGMWROAN.mjs} +557 -4
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +557 -4
- package/cloudflare.mjs +1 -1
- package/docs/advanced.mdx +83 -0
- package/docs/commands/array/arcount.mdx +28 -0
- package/docs/commands/array/ardel.mdx +30 -0
- package/docs/commands/array/ardelrange.mdx +32 -0
- package/docs/commands/array/arget.mdx +33 -0
- package/docs/commands/array/argetrange.mdx +38 -0
- package/docs/commands/array/argrep.mdx +69 -0
- package/docs/commands/array/arinfo.mdx +49 -0
- package/docs/commands/array/arinsert.mdx +32 -0
- package/docs/commands/array/arlastitems.mdx +40 -0
- package/docs/commands/array/arlen.mdx +28 -0
- package/docs/commands/array/armget.mdx +31 -0
- package/docs/commands/array/armset.mdx +31 -0
- package/docs/commands/array/arnext.mdx +25 -0
- package/docs/commands/array/arop.mdx +44 -0
- package/docs/commands/array/arring.mdx +36 -0
- package/docs/commands/array/arscan.mdx +42 -0
- package/docs/commands/array/arseek.mdx +34 -0
- package/docs/commands/array/arset.mdx +35 -0
- package/docs/commands/auth/echo.mdx +24 -0
- package/docs/commands/auth/ping.mdx +21 -0
- package/docs/commands/bitmap/bitcount.mdx +39 -0
- package/docs/commands/bitmap/bitop.mdx +142 -0
- package/docs/commands/bitmap/bitpos.mdx +39 -0
- package/docs/commands/bitmap/getbit.mdx +28 -0
- package/docs/commands/bitmap/setbit.mdx +31 -0
- package/docs/commands/connection/client_setinfo.mdx +91 -0
- package/docs/commands/functions/call.mdx +72 -0
- package/docs/commands/functions/call_ro.mdx +57 -0
- package/docs/commands/functions/delete.mdx +22 -0
- package/docs/commands/functions/flush.mdx +16 -0
- package/docs/commands/functions/list.mdx +72 -0
- package/docs/commands/functions/load.mdx +64 -0
- package/docs/commands/functions/stats.mdx +46 -0
- package/docs/commands/generic/del.mdx +29 -0
- package/docs/commands/generic/exists.mdx +26 -0
- package/docs/commands/generic/expire.mdx +29 -0
- package/docs/commands/generic/expireat.mdx +29 -0
- package/docs/commands/generic/keys.mdx +32 -0
- package/docs/commands/generic/persist.mdx +23 -0
- package/docs/commands/generic/pexpire.mdx +28 -0
- package/docs/commands/generic/pexpireat.mdx +29 -0
- package/docs/commands/generic/pttl.mdx +23 -0
- package/docs/commands/generic/randomkey.mdx +21 -0
- package/docs/commands/generic/rename.mdx +28 -0
- package/docs/commands/generic/renamenx.mdx +28 -0
- package/docs/commands/generic/scan.mdx +38 -0
- package/docs/commands/generic/touch.mdx +23 -0
- package/docs/commands/generic/ttl.mdx +23 -0
- package/docs/commands/generic/type.mdx +27 -0
- package/docs/commands/generic/unlink.mdx +29 -0
- package/docs/commands/hash/hdel.mdx +28 -0
- package/docs/commands/hash/hexists.mdx +30 -0
- package/docs/commands/hash/hexpire.mdx +49 -0
- package/docs/commands/hash/hexpireat.mdx +48 -0
- package/docs/commands/hash/hexpiretime.mdx +35 -0
- package/docs/commands/hash/hget.mdx +29 -0
- package/docs/commands/hash/hgetall.mdx +27 -0
- package/docs/commands/hash/hgetdel.mdx +67 -0
- package/docs/commands/hash/hgetex.mdx +123 -0
- package/docs/commands/hash/hincrby.mdx +34 -0
- package/docs/commands/hash/hincrbyfloat.mdx +34 -0
- package/docs/commands/hash/hkeys.mdx +28 -0
- package/docs/commands/hash/hlen.mdx +28 -0
- package/docs/commands/hash/hmget.mdx +33 -0
- package/docs/commands/hash/hpersist.mdx +37 -0
- package/docs/commands/hash/hpexpire.mdx +50 -0
- package/docs/commands/hash/hpexpireat.mdx +48 -0
- package/docs/commands/hash/hpexpiretime.mdx +35 -0
- package/docs/commands/hash/hpttl.mdx +35 -0
- package/docs/commands/hash/hrandfield.mdx +57 -0
- package/docs/commands/hash/hscan.mdx +65 -0
- package/docs/commands/hash/hset.mdx +32 -0
- package/docs/commands/hash/hsetex.mdx +186 -0
- package/docs/commands/hash/hsetnx.mdx +30 -0
- package/docs/commands/hash/hstrlen.mdx +28 -0
- package/docs/commands/hash/httl.mdx +35 -0
- package/docs/commands/hash/hvals.mdx +29 -0
- package/docs/commands/json/arrappend.mdx +35 -0
- package/docs/commands/json/arrindex.mdx +37 -0
- package/docs/commands/json/arrinsert.mdx +34 -0
- package/docs/commands/json/arrlen.mdx +26 -0
- package/docs/commands/json/arrpop.mdx +36 -0
- package/docs/commands/json/arrtrim.mdx +34 -0
- package/docs/commands/json/clear.mdx +30 -0
- package/docs/commands/json/del.mdx +26 -0
- package/docs/commands/json/forget.mdx +26 -0
- package/docs/commands/json/get.mdx +53 -0
- package/docs/commands/json/merge.mdx +32 -0
- package/docs/commands/json/mget.mdx +27 -0
- package/docs/commands/json/mset.mdx +26 -0
- package/docs/commands/json/numincrby.mdx +33 -0
- package/docs/commands/json/nummultby.mdx +33 -0
- package/docs/commands/json/objkeys.mdx +27 -0
- package/docs/commands/json/objlen.mdx +27 -0
- package/docs/commands/json/set.mdx +42 -0
- package/docs/commands/json/strappend.mdx +32 -0
- package/docs/commands/json/strlen.mdx +26 -0
- package/docs/commands/json/toggle.mdx +28 -0
- package/docs/commands/json/type.mdx +28 -0
- package/docs/commands/list/lindex.mdx +32 -0
- package/docs/commands/list/linsert.mdx +41 -0
- package/docs/commands/list/llen.mdx +26 -0
- package/docs/commands/list/lmove.mdx +34 -0
- package/docs/commands/list/lpop.mdx +37 -0
- package/docs/commands/list/lpos.mdx +56 -0
- package/docs/commands/list/lpush.mdx +32 -0
- package/docs/commands/list/lpushx.mdx +38 -0
- package/docs/commands/list/lrange.mdx +37 -0
- package/docs/commands/list/lrem.mdx +33 -0
- package/docs/commands/list/lset.mdx +34 -0
- package/docs/commands/list/ltrim.mdx +33 -0
- package/docs/commands/list/rpop.mdx +37 -0
- package/docs/commands/list/rpush.mdx +32 -0
- package/docs/commands/list/rpushx.mdx +38 -0
- package/docs/commands/overview.mdx +692 -0
- package/docs/commands/pubsub/psubscribe.mdx +36 -0
- package/docs/commands/pubsub/publish.mdx +27 -0
- package/docs/commands/pubsub/subscribe.mdx +28 -0
- package/docs/commands/scripts/eval.mdx +36 -0
- package/docs/commands/scripts/eval_ro.mdx +36 -0
- package/docs/commands/scripts/evalsha.mdx +36 -0
- package/docs/commands/scripts/evalsha_ro.mdx +36 -0
- package/docs/commands/scripts/script_exists.mdx +26 -0
- package/docs/commands/scripts/script_flush.mdx +28 -0
- package/docs/commands/scripts/script_load.mdx +28 -0
- package/docs/commands/server/dbsize.mdx +22 -0
- package/docs/commands/server/flushall.mdx +25 -0
- package/docs/commands/server/flushdb.mdx +25 -0
- package/docs/commands/set/sadd.mdx +32 -0
- package/docs/commands/set/scard.mdx +26 -0
- package/docs/commands/set/sdiff.mdx +27 -0
- package/docs/commands/set/sdiffstore.mdx +32 -0
- package/docs/commands/set/sinter.mdx +27 -0
- package/docs/commands/set/sinterstore.mdx +33 -0
- package/docs/commands/set/sismember.mdx +30 -0
- package/docs/commands/set/smembers.mdx +25 -0
- package/docs/commands/set/smismember.mdx +31 -0
- package/docs/commands/set/smove.mdx +34 -0
- package/docs/commands/set/spop.mdx +36 -0
- package/docs/commands/set/srandmember.mdx +36 -0
- package/docs/commands/set/srem.mdx +29 -0
- package/docs/commands/set/sscan.mdx +39 -0
- package/docs/commands/set/sunion.mdx +27 -0
- package/docs/commands/set/sunionstore.mdx +33 -0
- package/docs/commands/stream/xack.mdx +37 -0
- package/docs/commands/stream/xackdel.mdx +211 -0
- package/docs/commands/stream/xadd.mdx +137 -0
- package/docs/commands/stream/xautoclaim.mdx +80 -0
- package/docs/commands/stream/xclaim.mdx +84 -0
- package/docs/commands/stream/xdel.mdx +34 -0
- package/docs/commands/stream/xdelex.mdx +119 -0
- package/docs/commands/stream/xgroup.mdx +141 -0
- package/docs/commands/stream/xinfo.mdx +77 -0
- package/docs/commands/stream/xlen.mdx +22 -0
- package/docs/commands/stream/xpending.mdx +75 -0
- package/docs/commands/stream/xrange.mdx +59 -0
- package/docs/commands/stream/xread.mdx +65 -0
- package/docs/commands/stream/xreadgroup.mdx +87 -0
- package/docs/commands/stream/xrevrange.mdx +65 -0
- package/docs/commands/stream/xtrim.mdx +75 -0
- package/docs/commands/string/append.mdx +28 -0
- package/docs/commands/string/decr.mdx +27 -0
- package/docs/commands/string/decrby.mdx +30 -0
- package/docs/commands/string/get.mdx +34 -0
- package/docs/commands/string/getdel.mdx +29 -0
- package/docs/commands/string/getrange.mdx +34 -0
- package/docs/commands/string/getset.mdx +28 -0
- package/docs/commands/string/incr.mdx +27 -0
- package/docs/commands/string/incrby.mdx +30 -0
- package/docs/commands/string/incrbyfloat.mdx +30 -0
- package/docs/commands/string/mget.mdx +31 -0
- package/docs/commands/string/mset.mdx +32 -0
- package/docs/commands/string/msetnx.mdx +29 -0
- package/docs/commands/string/set.mdx +79 -0
- package/docs/commands/string/setrange.mdx +38 -0
- package/docs/commands/string/strlen.mdx +26 -0
- package/docs/commands/transaction.mdx +22 -0
- package/docs/commands/zset/zadd.mdx +102 -0
- package/docs/commands/zset/zcard.mdx +31 -0
- package/docs/commands/zset/zcount.mdx +47 -0
- package/docs/commands/zset/zdiffstore.mdx +33 -0
- package/docs/commands/zset/zincrby.mdx +37 -0
- package/docs/commands/zset/zinterstore.mdx +98 -0
- package/docs/commands/zset/zlexcount.mdx +43 -0
- package/docs/commands/zset/zmscore.mdx +34 -0
- package/docs/commands/zset/zpopmax.mdx +25 -0
- package/docs/commands/zset/zpopmin.mdx +25 -0
- package/docs/commands/zset/zrange.mdx +85 -0
- package/docs/commands/zset/zrank.mdx +29 -0
- package/docs/commands/zset/zrem.mdx +33 -0
- package/docs/commands/zset/zremrangebylex.mdx +32 -0
- package/docs/commands/zset/zremrangebyrank.mdx +32 -0
- package/docs/commands/zset/zremrangebyscore.mdx +32 -0
- package/docs/commands/zset/zrevrank.mdx +29 -0
- package/docs/commands/zset/zscan.mdx +58 -0
- package/docs/commands/zset/zscore.mdx +34 -0
- package/docs/commands/zset/zunionstore.mdx +98 -0
- package/docs/deployment.mdx +117 -0
- package/docs/developing.mdx +118 -0
- package/docs/getstarted.mdx +68 -0
- package/docs/overview.mdx +29 -0
- package/docs/pipelining/auto-pipeline.mdx +108 -0
- package/docs/pipelining/pipeline-transaction.mdx +65 -0
- package/docs/retries.mdx +24 -0
- package/docs/troubleshooting.mdx +80 -0
- package/{error-BNzLTXJG.d.mts → error-4e36-PC0.d.mts} +838 -8
- package/{error-BNzLTXJG.d.ts → error-4e36-PC0.d.ts} +838 -8
- package/fastly.d.mts +2 -2
- package/fastly.d.ts +2 -2
- package/fastly.js +557 -4
- package/fastly.mjs +1 -1
- package/nodejs.d.mts +34 -2
- package/nodejs.d.ts +34 -2
- package/nodejs.js +586 -4
- package/nodejs.mjs +30 -1
- package/package.json +16 -5
- package/src/pkg/auto-pipeline.ts +284 -0
- package/src/pkg/commands/append.ts +12 -0
- package/src/pkg/commands/arcount.ts +14 -0
- package/src/pkg/commands/ardel.ts +19 -0
- package/src/pkg/commands/ardelrange.ts +19 -0
- package/src/pkg/commands/arget.ts +17 -0
- package/src/pkg/commands/argetrange.ts +20 -0
- package/src/pkg/commands/argrep.ts +109 -0
- package/src/pkg/commands/arinfo.ts +88 -0
- package/src/pkg/commands/arinsert.ts +24 -0
- package/src/pkg/commands/arlastitems.ts +29 -0
- package/src/pkg/commands/arlen.ts +23 -0
- package/src/pkg/commands/armget.ts +18 -0
- package/src/pkg/commands/armset.ts +26 -0
- package/src/pkg/commands/arnext.ts +20 -0
- package/src/pkg/commands/arop.ts +48 -0
- package/src/pkg/commands/arring.ts +23 -0
- package/src/pkg/commands/arscan.ts +44 -0
- package/src/pkg/commands/arseek.ts +17 -0
- package/src/pkg/commands/arset.ts +20 -0
- package/src/pkg/commands/bitcount.ts +30 -0
- package/src/pkg/commands/bitfield.ts +50 -0
- package/src/pkg/commands/bitop.ts +35 -0
- package/src/pkg/commands/bitpos.ts +15 -0
- package/src/pkg/commands/client_setinfo.ts +17 -0
- package/src/pkg/commands/command.ts +142 -0
- package/src/pkg/commands/copy.ts +22 -0
- package/src/pkg/commands/dbsize.ts +12 -0
- package/src/pkg/commands/decr.ts +12 -0
- package/src/pkg/commands/decrby.ts +12 -0
- package/src/pkg/commands/del.ts +12 -0
- package/src/pkg/commands/echo.ts +12 -0
- package/src/pkg/commands/eval.ts +18 -0
- package/src/pkg/commands/evalRo.ts +18 -0
- package/src/pkg/commands/evalsha.ts +18 -0
- package/src/pkg/commands/evalshaRo.ts +18 -0
- package/src/pkg/commands/exec.ts +23 -0
- package/src/pkg/commands/exists.ts +12 -0
- package/src/pkg/commands/expire.ts +13 -0
- package/src/pkg/commands/expireat.ts +16 -0
- package/src/pkg/commands/fcall.ts +15 -0
- package/src/pkg/commands/fcall_ro.ts +18 -0
- package/src/pkg/commands/flushall.ts +15 -0
- package/src/pkg/commands/flushdb.ts +15 -0
- package/src/pkg/commands/function_delete.ts +12 -0
- package/src/pkg/commands/function_flush.ts +12 -0
- package/src/pkg/commands/function_list.ts +77 -0
- package/src/pkg/commands/function_load.ts +31 -0
- package/src/pkg/commands/function_stats.ts +42 -0
- package/src/pkg/commands/geo_add.ts +54 -0
- package/src/pkg/commands/geo_dist.ts +19 -0
- package/src/pkg/commands/geo_hash.ts +23 -0
- package/src/pkg/commands/geo_pos.ts +39 -0
- package/src/pkg/commands/geo_search.ts +140 -0
- package/src/pkg/commands/geo_search_store.ts +69 -0
- package/src/pkg/commands/get.ts +15 -0
- package/src/pkg/commands/getbit.ts +12 -0
- package/src/pkg/commands/getdel.ts +15 -0
- package/src/pkg/commands/getex.ts +36 -0
- package/src/pkg/commands/getrange.ts +15 -0
- package/src/pkg/commands/getset.ts +15 -0
- package/src/pkg/commands/hdel.ts +12 -0
- package/src/pkg/commands/hexists.ts +12 -0
- package/src/pkg/commands/hexpire.ts +30 -0
- package/src/pkg/commands/hexpireat.ts +30 -0
- package/src/pkg/commands/hexpiretime.ts +13 -0
- package/src/pkg/commands/hget.ts +18 -0
- package/src/pkg/commands/hgetall.ts +44 -0
- package/src/pkg/commands/hgetdel.ts +30 -0
- package/src/pkg/commands/hgetex.ts +56 -0
- package/src/pkg/commands/hincrby.ts +15 -0
- package/src/pkg/commands/hincrbyfloat.ts +15 -0
- package/src/pkg/commands/hkeys.ts +12 -0
- package/src/pkg/commands/hlen.ts +12 -0
- package/src/pkg/commands/hmget.ts +53 -0
- package/src/pkg/commands/hmset.ts +14 -0
- package/src/pkg/commands/hpersist.ts +13 -0
- package/src/pkg/commands/hpexpire.ts +30 -0
- package/src/pkg/commands/hpexpireat.ts +30 -0
- package/src/pkg/commands/hpexpiretime.ts +13 -0
- package/src/pkg/commands/hpttl.ts +13 -0
- package/src/pkg/commands/hrandfield.ts +52 -0
- package/src/pkg/commands/hscan.ts +31 -0
- package/src/pkg/commands/hset.ts +15 -0
- package/src/pkg/commands/hsetex.ts +59 -0
- package/src/pkg/commands/hsetnx.ts +15 -0
- package/src/pkg/commands/hstrlen.ts +12 -0
- package/src/pkg/commands/httl.ts +13 -0
- package/src/pkg/commands/hvals.ts +12 -0
- package/src/pkg/commands/incr.ts +12 -0
- package/src/pkg/commands/incrby.ts +12 -0
- package/src/pkg/commands/incrbyfloat.ts +12 -0
- package/src/pkg/commands/json_arrappend.ts +18 -0
- package/src/pkg/commands/json_arrindex.ts +15 -0
- package/src/pkg/commands/json_arrinsert.ts +18 -0
- package/src/pkg/commands/json_arrlen.ts +15 -0
- package/src/pkg/commands/json_arrpop.ts +15 -0
- package/src/pkg/commands/json_arrtrim.ts +19 -0
- package/src/pkg/commands/json_clear.ts +12 -0
- package/src/pkg/commands/json_del.ts +12 -0
- package/src/pkg/commands/json_forget.ts +12 -0
- package/src/pkg/commands/json_get.ts +45 -0
- package/src/pkg/commands/json_merge.ts +18 -0
- package/src/pkg/commands/json_mget.ts +12 -0
- package/src/pkg/commands/json_mset.ts +27 -0
- package/src/pkg/commands/json_numincrby.ts +15 -0
- package/src/pkg/commands/json_nummultby.ts +15 -0
- package/src/pkg/commands/json_objkeys.ts +15 -0
- package/src/pkg/commands/json_objlen.ts +15 -0
- package/src/pkg/commands/json_resp.ts +11 -0
- package/src/pkg/commands/json_set.ts +35 -0
- package/src/pkg/commands/json_strappend.ts +15 -0
- package/src/pkg/commands/json_strlen.ts +15 -0
- package/src/pkg/commands/json_toggle.ts +12 -0
- package/src/pkg/commands/json_type.ts +12 -0
- package/src/pkg/commands/keys.ts +12 -0
- package/src/pkg/commands/lindex.ts +11 -0
- package/src/pkg/commands/linsert.ts +10 -0
- package/src/pkg/commands/llen.ts +12 -0
- package/src/pkg/commands/lmove.ts +20 -0
- package/src/pkg/commands/lmpop.ts +19 -0
- package/src/pkg/commands/lpop.ts +18 -0
- package/src/pkg/commands/lpos.ts +26 -0
- package/src/pkg/commands/lpush.ts +12 -0
- package/src/pkg/commands/lpushx.ts +12 -0
- package/src/pkg/commands/lrange.ts +11 -0
- package/src/pkg/commands/lrem.ts +10 -0
- package/src/pkg/commands/lset.ts +8 -0
- package/src/pkg/commands/ltrim.ts +8 -0
- package/src/pkg/commands/mget.ts +15 -0
- package/src/pkg/commands/mod.ts +222 -0
- package/src/pkg/commands/mset.ts +12 -0
- package/src/pkg/commands/msetnx.ts +12 -0
- package/src/pkg/commands/persist.ts +12 -0
- package/src/pkg/commands/pexpire.ts +16 -0
- package/src/pkg/commands/pexpireat.ts +16 -0
- package/src/pkg/commands/pfadd.ts +11 -0
- package/src/pkg/commands/pfcount.ts +11 -0
- package/src/pkg/commands/pfmerge.ts +11 -0
- package/src/pkg/commands/ping.ts +15 -0
- package/src/pkg/commands/psetex.ts +14 -0
- package/src/pkg/commands/psubscribe.ts +26 -0
- package/src/pkg/commands/pttl.ts +12 -0
- package/src/pkg/commands/publish.ts +12 -0
- package/src/pkg/commands/randomkey.ts +12 -0
- package/src/pkg/commands/rename.ts +12 -0
- package/src/pkg/commands/renamenx.ts +12 -0
- package/src/pkg/commands/rpop.ts +21 -0
- package/src/pkg/commands/rpush.ts +12 -0
- package/src/pkg/commands/rpushx.ts +12 -0
- package/src/pkg/commands/sadd.ts +15 -0
- package/src/pkg/commands/scan.ts +63 -0
- package/src/pkg/commands/scard.ts +11 -0
- package/src/pkg/commands/script_exists.ts +15 -0
- package/src/pkg/commands/script_flush.ts +22 -0
- package/src/pkg/commands/script_load.ts +12 -0
- package/src/pkg/commands/sdiff.ts +11 -0
- package/src/pkg/commands/sdiffstore.ts +14 -0
- package/src/pkg/commands/search/command-builder.ts +162 -0
- package/src/pkg/commands/search/index.ts +4 -0
- package/src/pkg/commands/search/schema-builder.ts +320 -0
- package/src/pkg/commands/search/search.ts +218 -0
- package/src/pkg/commands/search/types.ts +1029 -0
- package/src/pkg/commands/search/utils.ts +275 -0
- package/src/pkg/commands/set.ts +52 -0
- package/src/pkg/commands/setbit.ts +15 -0
- package/src/pkg/commands/setex.ts +11 -0
- package/src/pkg/commands/setnx.ts +11 -0
- package/src/pkg/commands/setrange.ts +15 -0
- package/src/pkg/commands/sinter.ts +11 -0
- package/src/pkg/commands/sintercard.ts +19 -0
- package/src/pkg/commands/sinterstore.ts +14 -0
- package/src/pkg/commands/sismember.ts +11 -0
- package/src/pkg/commands/smembers.ts +12 -0
- package/src/pkg/commands/smismember.ts +17 -0
- package/src/pkg/commands/smove.ts +14 -0
- package/src/pkg/commands/spop.ts +18 -0
- package/src/pkg/commands/srandmember.ts +18 -0
- package/src/pkg/commands/srem.ts +11 -0
- package/src/pkg/commands/sscan.ts +31 -0
- package/src/pkg/commands/strlen.ts +12 -0
- package/src/pkg/commands/subscribe.ts +254 -0
- package/src/pkg/commands/sunion.ts +12 -0
- package/src/pkg/commands/sunionstore.ts +15 -0
- package/src/pkg/commands/time.ts +10 -0
- package/src/pkg/commands/touch.ts +12 -0
- package/src/pkg/commands/ttl.ts +12 -0
- package/src/pkg/commands/type.ts +13 -0
- package/src/pkg/commands/types.ts +201 -0
- package/src/pkg/commands/unlink.ts +12 -0
- package/src/pkg/commands/vector/index.ts +11 -0
- package/src/pkg/commands/vector/types.ts +63 -0
- package/src/pkg/commands/vector/utils.ts +67 -0
- package/src/pkg/commands/vector/vector.ts +131 -0
- package/src/pkg/commands/vector_add.ts +18 -0
- package/src/pkg/commands/vector_count.ts +11 -0
- package/src/pkg/commands/vector_create.ts +28 -0
- package/src/pkg/commands/vector_del.ts +13 -0
- package/src/pkg/commands/vector_drop.ts +13 -0
- package/src/pkg/commands/vector_get.ts +18 -0
- package/src/pkg/commands/vector_info.ts +25 -0
- package/src/pkg/commands/vector_query.ts +24 -0
- package/src/pkg/commands/xack.ts +16 -0
- package/src/pkg/commands/xackdel.ts +21 -0
- package/src/pkg/commands/xadd.ts +70 -0
- package/src/pkg/commands/xautoclaim.ts +31 -0
- package/src/pkg/commands/xclaim.ts +56 -0
- package/src/pkg/commands/xdel.ts +16 -0
- package/src/pkg/commands/xdelex.ts +25 -0
- package/src/pkg/commands/xgroup.ts +101 -0
- package/src/pkg/commands/xinfo.ts +28 -0
- package/src/pkg/commands/xlen.ts +12 -0
- package/src/pkg/commands/xpending.ts +44 -0
- package/src/pkg/commands/xrange.ts +49 -0
- package/src/pkg/commands/xread.ts +78 -0
- package/src/pkg/commands/xreadgroup.ts +74 -0
- package/src/pkg/commands/xrevrange.ts +48 -0
- package/src/pkg/commands/xtrim.ts +25 -0
- package/src/pkg/commands/zadd.ts +54 -0
- package/src/pkg/commands/zcard.ts +12 -0
- package/src/pkg/commands/zcount.ts +14 -0
- package/src/pkg/commands/zdiffstore.ts +15 -0
- package/src/pkg/commands/zincrby.ts +14 -0
- package/src/pkg/commands/zinterstore.ts +51 -0
- package/src/pkg/commands/zlexcount.ts +11 -0
- package/src/pkg/commands/zmscore.ts +16 -0
- package/src/pkg/commands/zpopmax.ts +18 -0
- package/src/pkg/commands/zpopmin.ts +18 -0
- package/src/pkg/commands/zrange.ts +72 -0
- package/src/pkg/commands/zrank.ts +14 -0
- package/src/pkg/commands/zrem.ts +11 -0
- package/src/pkg/commands/zremrangebylex.ts +11 -0
- package/src/pkg/commands/zremrangebyrank.ts +14 -0
- package/src/pkg/commands/zremrangebyscore.ts +18 -0
- package/src/pkg/commands/zrevrank.ts +14 -0
- package/src/pkg/commands/zscan.ts +31 -0
- package/src/pkg/commands/zscore.ts +15 -0
- package/src/pkg/commands/zunion.ts +54 -0
- package/src/pkg/commands/zunionstore.ts +52 -0
- package/src/pkg/error.ts +28 -0
- package/src/pkg/http.ts +458 -0
- package/src/pkg/index.ts +1 -0
- package/src/pkg/pipeline.ts +2041 -0
- package/src/pkg/redis.ts +2130 -0
- package/src/pkg/script.ts +100 -0
- package/src/pkg/scriptRo.ts +98 -0
- package/src/pkg/types.ts +35 -0
- package/src/pkg/util.ts +115 -0
- package/src/platforms/cloudflare.ts +162 -0
- package/src/platforms/fastly.ts +105 -0
- package/src/platforms/nodejs.ts +231 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HDEL
|
|
3
|
+
description: Deletes one or more hash fields.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Arguments
|
|
8
|
+
|
|
9
|
+
<ParamField body="key"type="string" required>
|
|
10
|
+
The key to get.
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField body="fields" required>
|
|
14
|
+
One or more fields to delete.
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
## Response
|
|
18
|
+
|
|
19
|
+
<ResponseField type="integer" required>
|
|
20
|
+
The number of fields that were removed from the hash.
|
|
21
|
+
</ResponseField>
|
|
22
|
+
|
|
23
|
+
<RequestExample>
|
|
24
|
+
```ts Example
|
|
25
|
+
await redis.hdel(key, 'field1', 'field2');
|
|
26
|
+
// returns 5
|
|
27
|
+
```
|
|
28
|
+
</RequestExample>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HEXISTS
|
|
3
|
+
description: Checks if a field exists in a hash.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Arguments
|
|
8
|
+
|
|
9
|
+
<ParamField body="key"type="string" required>
|
|
10
|
+
The key to get.
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField body="field"type="string" required>
|
|
14
|
+
The field to check.
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
## Response
|
|
18
|
+
|
|
19
|
+
<ResponseField type="integer" required>
|
|
20
|
+
`1` if the hash contains `field`. `0` if the hash does not contain `field`, or `key` does not exist.
|
|
21
|
+
</ResponseField>
|
|
22
|
+
|
|
23
|
+
<RequestExample>
|
|
24
|
+
```ts Example
|
|
25
|
+
await redis.hset("key", "field", "value");
|
|
26
|
+
const exists = await redis.hexists("key", "field");
|
|
27
|
+
|
|
28
|
+
console.log(exists); // 1
|
|
29
|
+
```
|
|
30
|
+
</RequestExample>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HEXPIRE
|
|
3
|
+
description: Sets an expiration time for one or more fields in a hash.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="field" type="string | number | (string | number)[]" required>
|
|
13
|
+
The field or fields to set an expiration time for.
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
<ParamField body="seconds" type="number" required>
|
|
17
|
+
The time-to-live (TTL) in seconds.
|
|
18
|
+
</ParamField>
|
|
19
|
+
|
|
20
|
+
<ParamField body="option" type="string" optional>
|
|
21
|
+
Optional condition for setting the expiration:
|
|
22
|
+
- `NX`: Set the expiration only if the field does not already have an expiration.
|
|
23
|
+
- `XX`: Set the expiration only if the field already has an expiration.
|
|
24
|
+
- `GT`: Set the expiration only if the new TTL is greater than the current TTL.
|
|
25
|
+
- `LT`: Set the expiration only if the new TTL is less than the current TTL.
|
|
26
|
+
</ParamField>
|
|
27
|
+
|
|
28
|
+
## Response
|
|
29
|
+
|
|
30
|
+
<ResponseField type="number[]" required>
|
|
31
|
+
A list of integers indicating whether the expiry was successfully set.
|
|
32
|
+
|
|
33
|
+
- `-2` if the field does not exist in the hash or if key doesn't exist.
|
|
34
|
+
- `0` if the expiration was not set due to the condition.
|
|
35
|
+
- `1` if the expiration was successfully set.
|
|
36
|
+
- `2` if called with 0 seconds/milliseconds or a past Unix time.
|
|
37
|
+
|
|
38
|
+
For more details, see [HEXPIRE documentation](/redis/commands/hash/hexpire).
|
|
39
|
+
</ResponseField>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<RequestExample>
|
|
43
|
+
```ts Example
|
|
44
|
+
await redis.hset("my-key", "my-field", "my-value");
|
|
45
|
+
const expirationSet = await redis.hexpire("my-key", "my-field", 1);
|
|
46
|
+
|
|
47
|
+
console.log(expirationSet); // 1
|
|
48
|
+
```
|
|
49
|
+
</RequestExample>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HEXPIREAT
|
|
3
|
+
description: Sets an expiration time for field(s) in a hash in seconds since the Unix epoch.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="fields" type="string | number | (string | number)[]" required>
|
|
13
|
+
The field(s) to set an expiration time for.
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
<ParamField body="timestamp" type="number" required>
|
|
17
|
+
The expiration time as a Unix timestamp in seconds.
|
|
18
|
+
</ParamField>
|
|
19
|
+
|
|
20
|
+
<ParamField body="option" type="string" optional>
|
|
21
|
+
Optional condition for setting the expiration:
|
|
22
|
+
- `NX`: Set the expiration only if the field does not already have an expiration.
|
|
23
|
+
- `XX`: Set the expiration only if the field already has an expiration.
|
|
24
|
+
- `GT`: Set the expiration only if the new TTL is greater than the current TTL.
|
|
25
|
+
- `LT`: Set the expiration only if the new TTL is less than the current TTL.
|
|
26
|
+
</ParamField>
|
|
27
|
+
|
|
28
|
+
## Response
|
|
29
|
+
|
|
30
|
+
<ResponseField type="number[]" required>
|
|
31
|
+
A list of integers indicating whether the expiry was successfully set.
|
|
32
|
+
|
|
33
|
+
- `-2` if the field does not exist in the hash or if key doesn't exist.
|
|
34
|
+
- `0` if the expiration was not set due to the condition.
|
|
35
|
+
- `1` if the expiration was successfully set.
|
|
36
|
+
- `2` if called with 0 seconds/milliseconds or a past Unix time.
|
|
37
|
+
|
|
38
|
+
For more details, see [HEXPIREAT documentation](/redis/commands/hash/hexpireat).
|
|
39
|
+
</ResponseField>
|
|
40
|
+
|
|
41
|
+
<RequestExample>
|
|
42
|
+
```ts Example
|
|
43
|
+
await redis.hset("my-key", "my-field", "my-value");
|
|
44
|
+
const expirationSet = await redis.hexpireat("my-key", "my-field", Math.floor(Date.now() / 1000) + 10);
|
|
45
|
+
|
|
46
|
+
console.log(expirationSet); // [1]
|
|
47
|
+
```
|
|
48
|
+
</RequestExample>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HEXPIRETIME
|
|
3
|
+
description: Retrieves the expiration time of field(s) in a hash in seconds.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="fields" type="string | number | (string | number)[]" required>
|
|
13
|
+
The field(s) to retrieve the expiration time for.
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
## Response
|
|
17
|
+
|
|
18
|
+
<ResponseField type="number[]" required>
|
|
19
|
+
The expiration time in seconds since the Unix epoch for each field.
|
|
20
|
+
|
|
21
|
+
- `-2` if the field does not exist in the hash or if the key doesn't exist.
|
|
22
|
+
- `-1` if the field exists but has no associated expiration.
|
|
23
|
+
|
|
24
|
+
For more details, see [HEXPIRETIME documentation](/redis/commands/hash/hexpiretime).
|
|
25
|
+
</ResponseField>
|
|
26
|
+
|
|
27
|
+
<RequestExample>
|
|
28
|
+
```ts Example
|
|
29
|
+
await redis.hset("my-key", "my-field", "my-value");
|
|
30
|
+
await redis.hexpireat("my-key", "my-field", Math.floor(Date.now() / 1000) + 10);
|
|
31
|
+
const expireTime = await redis.hexpiretime("my-key", "my-field");
|
|
32
|
+
|
|
33
|
+
console.log(expireTime); // e.g., [1697059200]
|
|
34
|
+
```
|
|
35
|
+
</RequestExample>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HGET
|
|
3
|
+
description: Retrieves the value of a hash field.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
## Arguments
|
|
8
|
+
|
|
9
|
+
<ParamField body="key"type="string" required>
|
|
10
|
+
The key to get.
|
|
11
|
+
</ParamField>
|
|
12
|
+
|
|
13
|
+
<ParamField body="field"type="string" required>
|
|
14
|
+
The field to get.
|
|
15
|
+
</ParamField>
|
|
16
|
+
|
|
17
|
+
## Response
|
|
18
|
+
|
|
19
|
+
<ResponseField type="TValue | null" required>
|
|
20
|
+
The value of the field, or `null`, when field is not present in the hash or key does not exist.
|
|
21
|
+
</ResponseField>
|
|
22
|
+
|
|
23
|
+
<RequestExample>
|
|
24
|
+
```ts Example
|
|
25
|
+
await redis.hset("key", {field: "value"});
|
|
26
|
+
const field = await redis.hget("key", "field");
|
|
27
|
+
console.log(field); // "value"
|
|
28
|
+
```
|
|
29
|
+
</RequestExample>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HGETALL
|
|
3
|
+
description: Retrieves all fields from a hash.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key to get.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
## Response
|
|
13
|
+
|
|
14
|
+
<ResponseField type="TValue | null" required>
|
|
15
|
+
An object with all fields in the hash.
|
|
16
|
+
</ResponseField>
|
|
17
|
+
|
|
18
|
+
<RequestExample>
|
|
19
|
+
```ts Example
|
|
20
|
+
await redis.hset("key", {
|
|
21
|
+
field1: "value1",
|
|
22
|
+
field2: "value2",
|
|
23
|
+
});
|
|
24
|
+
const hash = await redis.hgetall("key");
|
|
25
|
+
console.log(hash); // { field1: "value1", field2: "value2" }
|
|
26
|
+
```
|
|
27
|
+
</RequestExample>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HGETDEL
|
|
3
|
+
description: Get and delete hash fields atomically.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The `HGETDEL` command returns the values of the specified fields and then atomically deletes them from the hash. This is useful when you need to retrieve and remove data in a single atomic operation.
|
|
7
|
+
|
|
8
|
+
## Arguments
|
|
9
|
+
|
|
10
|
+
<ParamField body="key" type="string" required>
|
|
11
|
+
The key of the hash.
|
|
12
|
+
</ParamField>
|
|
13
|
+
|
|
14
|
+
<ParamField body="fields" type="...string[]" required>
|
|
15
|
+
One or more field names to get and delete.
|
|
16
|
+
</ParamField>
|
|
17
|
+
|
|
18
|
+
## Response
|
|
19
|
+
|
|
20
|
+
<ResponseField type="Record<string, TValue | null> | null" required>
|
|
21
|
+
An object containing the field names and their values in the format `{[fieldName: string]: TValue | null}`. Returns `null` for fields that do not exist. If the hash doesn't exist or all fields are non-existent, `null` is returned.
|
|
22
|
+
</ResponseField>
|
|
23
|
+
|
|
24
|
+
<RequestExample>
|
|
25
|
+
```ts Basic Example
|
|
26
|
+
// Set some hash fields
|
|
27
|
+
await redis.hset("user:123", { name: "John", age: "30", email: "john@example.com" });
|
|
28
|
+
|
|
29
|
+
// Get and delete specific fields
|
|
30
|
+
const result = await redis.hgetdel("user:123", "name", "email");
|
|
31
|
+
console.log(result); // { name: "John", email: "john@example.com" }
|
|
32
|
+
|
|
33
|
+
// Verify fields were deleted
|
|
34
|
+
const name = await redis.hget("user:123", "name");
|
|
35
|
+
console.log(name); // null
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```ts Multiple Fields
|
|
39
|
+
await redis.hset("session:abc", {
|
|
40
|
+
token: "xyz123",
|
|
41
|
+
user: "john",
|
|
42
|
+
expires: "2024-12-31"
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Get and delete all fields
|
|
46
|
+
const session = await redis.hgetdel("session:abc", "token", "user", "expires");
|
|
47
|
+
console.log(session);
|
|
48
|
+
// { token: "xyz123", user: "john", expires: "2024-12-31" }
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```ts Non-existent Fields
|
|
52
|
+
await redis.hset("user:456", { name: "Jane" });
|
|
53
|
+
|
|
54
|
+
// Get and delete with non-existent field
|
|
55
|
+
const result = await redis.hgetdel("user:456", "name", "email");
|
|
56
|
+
console.log(result); // { name: "Jane", email: null }
|
|
57
|
+
```
|
|
58
|
+
</RequestExample>
|
|
59
|
+
|
|
60
|
+
## Use Cases
|
|
61
|
+
|
|
62
|
+
- **Session Management**: Retrieve and invalidate session data atomically
|
|
63
|
+
- **Cache Cleanup**: Get cached data while removing it from storage
|
|
64
|
+
- **Queue Processing**: Fetch and remove job data in a single operation
|
|
65
|
+
- **Temporary Data**: Retrieve one-time use tokens or codes while deleting them
|
|
66
|
+
|
|
67
|
+
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HGETEX
|
|
3
|
+
description: Get hash fields with expiration support.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The `HGETEX` command returns the values of the specified fields and optionally sets their expiration time or TTL. This allows you to retrieve hash data while managing its lifetime in a single operation.
|
|
7
|
+
|
|
8
|
+
## Arguments
|
|
9
|
+
|
|
10
|
+
<ParamField body="key" type="string" required>
|
|
11
|
+
The key of the hash.
|
|
12
|
+
</ParamField>
|
|
13
|
+
|
|
14
|
+
<ParamField body="options" type="object" required>
|
|
15
|
+
Expiration options for the hash fields. The options are mutually exclusive - you can only use one at a time.
|
|
16
|
+
|
|
17
|
+
<Expandable title="properties">
|
|
18
|
+
<ParamField body="ex" type="number">
|
|
19
|
+
Set expiration time in seconds. Cannot be used with other expiration options.
|
|
20
|
+
</ParamField>
|
|
21
|
+
|
|
22
|
+
<ParamField body="px" type="number">
|
|
23
|
+
Set expiration time in milliseconds. Cannot be used with other expiration options.
|
|
24
|
+
</ParamField>
|
|
25
|
+
|
|
26
|
+
<ParamField body="exat" type="number">
|
|
27
|
+
Set expiration as Unix timestamp in seconds. Cannot be used with other expiration options.
|
|
28
|
+
</ParamField>
|
|
29
|
+
|
|
30
|
+
<ParamField body="pxat" type="number">
|
|
31
|
+
Set expiration as Unix timestamp in milliseconds. Cannot be used with other expiration options.
|
|
32
|
+
</ParamField>
|
|
33
|
+
|
|
34
|
+
<ParamField body="persist" type="true">
|
|
35
|
+
Remove expiration from the hash. Must be set to `true`. Cannot be used with other expiration options.
|
|
36
|
+
</ParamField>
|
|
37
|
+
</Expandable>
|
|
38
|
+
</ParamField>
|
|
39
|
+
|
|
40
|
+
<ParamField body="fields" type="...string[]" required>
|
|
41
|
+
One or more field names to get.
|
|
42
|
+
</ParamField>
|
|
43
|
+
|
|
44
|
+
## Response
|
|
45
|
+
|
|
46
|
+
<ResponseField type="Record<string, TValue | null> | null" required>
|
|
47
|
+
An object containing the field names and their values in the format `{[fieldName: string]: TValue | null}`. Returns `null` for fields that do not exist. If the hash doesn't exist or all fields are non-existent, `null` is returned.
|
|
48
|
+
</ResponseField>
|
|
49
|
+
|
|
50
|
+
<RequestExample>
|
|
51
|
+
```ts With EX (seconds)
|
|
52
|
+
await redis.hset("user:123", { name: "John", email: "john@example.com" });
|
|
53
|
+
|
|
54
|
+
// Get fields and set expiration to 60 seconds
|
|
55
|
+
const result = await redis.hgetex("user:123", { ex: 60 }, "name", "email");
|
|
56
|
+
console.log(result); // { name: "John", email: "john@example.com" }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```ts With PX (milliseconds)
|
|
60
|
+
await redis.hset("session:abc", { token: "xyz123", user: "john" });
|
|
61
|
+
|
|
62
|
+
// Get fields and set expiration to 30000 milliseconds (30 seconds)
|
|
63
|
+
const result = await redis.hgetex("session:abc", { px: 30000 }, "token", "user");
|
|
64
|
+
console.log(result); // { token: "xyz123", user: "john" }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```ts With EXAT (Unix timestamp in seconds)
|
|
68
|
+
await redis.hset("cache:data", { value: "cached" });
|
|
69
|
+
|
|
70
|
+
// Set expiration to specific timestamp (1 hour from now)
|
|
71
|
+
const futureTime = Math.floor(Date.now() / 1000) + 3600;
|
|
72
|
+
const result = await redis.hgetex("cache:data", { exat: futureTime }, "value");
|
|
73
|
+
console.log(result); // { value: "cached" }
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```ts With PXAT (Unix timestamp in milliseconds)
|
|
77
|
+
await redis.hset("temp:data", { info: "temporary" });
|
|
78
|
+
|
|
79
|
+
// Set expiration to specific timestamp in milliseconds
|
|
80
|
+
const futureTime = Date.now() + 60000; // 1 minute from now
|
|
81
|
+
const result = await redis.hgetex("temp:data", { pxat: futureTime }, "info");
|
|
82
|
+
console.log(result); // { info: "temporary" }
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```ts With PERSIST
|
|
86
|
+
await redis.hset("user:456", { name: "Jane" });
|
|
87
|
+
await redis.expire("user:456", 300); // Set 5 minute expiration
|
|
88
|
+
|
|
89
|
+
// Get fields and remove expiration
|
|
90
|
+
const result = await redis.hgetex("user:456", { persist: true }, "name");
|
|
91
|
+
console.log(result); // { name: "Jane" }
|
|
92
|
+
|
|
93
|
+
// Verify expiration was removed
|
|
94
|
+
const ttl = await redis.ttl("user:456");
|
|
95
|
+
console.log(ttl); // -1 (no expiration)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```ts Without Expiration Options
|
|
99
|
+
await redis.hset("data:xyz", { field1: "value1", field2: "value2" });
|
|
100
|
+
|
|
101
|
+
// Just get fields without changing expiration
|
|
102
|
+
// Pass an empty object or an object with no expiration properties
|
|
103
|
+
const result = await redis.hgetex("data:xyz", {}, "field1", "field2");
|
|
104
|
+
console.log(result); // { field1: "value1", field2: "value2" }
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
```ts Non-existent Fields
|
|
108
|
+
await redis.hset("user:789", { name: "Bob" });
|
|
109
|
+
|
|
110
|
+
// Get fields including one that doesn't exist
|
|
111
|
+
const result = await redis.hgetex("user:789", {}, "name", "email");
|
|
112
|
+
console.log(result); // { name: "Bob", email: null }
|
|
113
|
+
```
|
|
114
|
+
</RequestExample>
|
|
115
|
+
|
|
116
|
+
## Use Cases
|
|
117
|
+
|
|
118
|
+
- **Session Management**: Retrieve session data and extend its lifetime
|
|
119
|
+
- **Cache Refresh**: Get cached data and update its TTL
|
|
120
|
+
- **Temporary Data**: Access temporary data while managing its expiration
|
|
121
|
+
- **Rate Limiting**: Fetch rate limit data and reset expiration
|
|
122
|
+
|
|
123
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HINCRBY
|
|
3
|
+
description: Increments the value of a hash field by a given amount
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="field" type="string" required>
|
|
13
|
+
The field to increment
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
<ParamField body="increment" type="integer" required>
|
|
17
|
+
How much to increment the field by. Can be negative to subtract.
|
|
18
|
+
</ParamField>
|
|
19
|
+
|
|
20
|
+
## Response
|
|
21
|
+
|
|
22
|
+
<ResponseField type="integer" required>
|
|
23
|
+
The new value of the field after the increment.
|
|
24
|
+
</ResponseField>
|
|
25
|
+
|
|
26
|
+
<RequestExample>
|
|
27
|
+
```ts Example
|
|
28
|
+
await redis.hset("key", {
|
|
29
|
+
field: 20,
|
|
30
|
+
});
|
|
31
|
+
const after = await redis.hincrby("key", "field", 2);
|
|
32
|
+
console.log(after); // 22
|
|
33
|
+
```
|
|
34
|
+
</RequestExample>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HINCRBYFLOAT
|
|
3
|
+
description: Increments the value of a hash field by a given float value.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="field" type="string" required>
|
|
13
|
+
The field to increment
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
<ParamField body="increment" type="float" required>
|
|
17
|
+
How much to increment the field by. Can be negative to subtract.
|
|
18
|
+
</ParamField>
|
|
19
|
+
|
|
20
|
+
## Response
|
|
21
|
+
|
|
22
|
+
<ResponseField type="float" required>
|
|
23
|
+
The new value of the field after the increment.
|
|
24
|
+
</ResponseField>
|
|
25
|
+
|
|
26
|
+
<RequestExample>
|
|
27
|
+
```ts Example
|
|
28
|
+
await redis.hset("key", {
|
|
29
|
+
field: 20,
|
|
30
|
+
});
|
|
31
|
+
const after = await redis.hincrby("key", "field", 2.5);
|
|
32
|
+
console.log(after); // 22.5
|
|
33
|
+
```
|
|
34
|
+
</RequestExample>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HKEYS
|
|
3
|
+
description: Return all field names in the hash stored at key.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Response
|
|
14
|
+
|
|
15
|
+
<ResponseField type="string[]" required>
|
|
16
|
+
The field names of the hash
|
|
17
|
+
</ResponseField>
|
|
18
|
+
|
|
19
|
+
<RequestExample>
|
|
20
|
+
```ts Example
|
|
21
|
+
await redis.hset("key", {
|
|
22
|
+
id: 1,
|
|
23
|
+
username: "chronark",
|
|
24
|
+
});
|
|
25
|
+
const fields = await redis.hkeys("key");
|
|
26
|
+
console.log(fields); // ["id", "username"]
|
|
27
|
+
```
|
|
28
|
+
</RequestExample>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HLEN
|
|
3
|
+
description: Returns the number of fields contained in the hash stored at key.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Response
|
|
14
|
+
|
|
15
|
+
<ResponseField type="integer" required>
|
|
16
|
+
How many fields are in the hash.
|
|
17
|
+
</ResponseField>
|
|
18
|
+
|
|
19
|
+
<RequestExample>
|
|
20
|
+
```ts Example
|
|
21
|
+
await redis.hset("key", {
|
|
22
|
+
id: 1,
|
|
23
|
+
username: "chronark",
|
|
24
|
+
});
|
|
25
|
+
const fields = await redis.hlen("key");
|
|
26
|
+
console.log(fields); // 2
|
|
27
|
+
```
|
|
28
|
+
</RequestExample>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HMGET
|
|
3
|
+
description: Return the requested fields and their values.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="fields" type="...string[]" required>
|
|
13
|
+
One or more fields to get.
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Response
|
|
18
|
+
|
|
19
|
+
<ResponseField type="Record<string, unknown>" required>
|
|
20
|
+
An object containing the fields and their values.
|
|
21
|
+
</ResponseField>
|
|
22
|
+
|
|
23
|
+
<RequestExample>
|
|
24
|
+
```ts Example
|
|
25
|
+
await redis.hset("key", {
|
|
26
|
+
id: 1,
|
|
27
|
+
username: "chronark",
|
|
28
|
+
name: "andreas"
|
|
29
|
+
});
|
|
30
|
+
const fields = await redis.hmget("key", "username", "name");
|
|
31
|
+
console.log(fields); // { username: "chronark", name: "andreas" }
|
|
32
|
+
```
|
|
33
|
+
</RequestExample>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: HPERSIST
|
|
3
|
+
description: Remove the expiration from one or more fields in a hash.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Arguments
|
|
7
|
+
|
|
8
|
+
<ParamField body="key" type="string" required>
|
|
9
|
+
The key of the hash.
|
|
10
|
+
</ParamField>
|
|
11
|
+
|
|
12
|
+
<ParamField body="field" type="string | number | (string | number)[]" required>
|
|
13
|
+
The field or fields to remove the expiration from.
|
|
14
|
+
</ParamField>
|
|
15
|
+
|
|
16
|
+
## Response
|
|
17
|
+
|
|
18
|
+
<ResponseField type="number[]" required>
|
|
19
|
+
A list of integers indicating the result for each field:
|
|
20
|
+
|
|
21
|
+
- `-2` if the field does not exist in the hash or if the key doesn't exist.
|
|
22
|
+
- `-1` if the field exists but has no associated expiration set.
|
|
23
|
+
- `1` if the expiration was successfully removed.
|
|
24
|
+
|
|
25
|
+
For more details, see [HPERSIST documentation](/redis/commands/hash/hpersist).
|
|
26
|
+
</ResponseField>
|
|
27
|
+
|
|
28
|
+
<RequestExample>
|
|
29
|
+
```ts Example
|
|
30
|
+
await redis.hset("my-key", "my-field", "my-value");
|
|
31
|
+
await redis.hpexpire("my-key", "my-field", 1000);
|
|
32
|
+
|
|
33
|
+
const expirationRemoved = await redis.hpersist("my-key", "my-field");
|
|
34
|
+
|
|
35
|
+
console.log(expirationRemoved); // [1]
|
|
36
|
+
```
|
|
37
|
+
</RequestExample>
|