@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.
Files changed (475) hide show
  1. package/README.md +5 -0
  2. package/{chunk-RLVWMRRX.mjs → chunk-CGMWROAN.mjs} +557 -4
  3. package/cloudflare.d.mts +2 -2
  4. package/cloudflare.d.ts +2 -2
  5. package/cloudflare.js +557 -4
  6. package/cloudflare.mjs +1 -1
  7. package/docs/advanced.mdx +83 -0
  8. package/docs/commands/array/arcount.mdx +28 -0
  9. package/docs/commands/array/ardel.mdx +30 -0
  10. package/docs/commands/array/ardelrange.mdx +32 -0
  11. package/docs/commands/array/arget.mdx +33 -0
  12. package/docs/commands/array/argetrange.mdx +38 -0
  13. package/docs/commands/array/argrep.mdx +69 -0
  14. package/docs/commands/array/arinfo.mdx +49 -0
  15. package/docs/commands/array/arinsert.mdx +32 -0
  16. package/docs/commands/array/arlastitems.mdx +40 -0
  17. package/docs/commands/array/arlen.mdx +28 -0
  18. package/docs/commands/array/armget.mdx +31 -0
  19. package/docs/commands/array/armset.mdx +31 -0
  20. package/docs/commands/array/arnext.mdx +25 -0
  21. package/docs/commands/array/arop.mdx +44 -0
  22. package/docs/commands/array/arring.mdx +36 -0
  23. package/docs/commands/array/arscan.mdx +42 -0
  24. package/docs/commands/array/arseek.mdx +34 -0
  25. package/docs/commands/array/arset.mdx +35 -0
  26. package/docs/commands/auth/echo.mdx +24 -0
  27. package/docs/commands/auth/ping.mdx +21 -0
  28. package/docs/commands/bitmap/bitcount.mdx +39 -0
  29. package/docs/commands/bitmap/bitop.mdx +142 -0
  30. package/docs/commands/bitmap/bitpos.mdx +39 -0
  31. package/docs/commands/bitmap/getbit.mdx +28 -0
  32. package/docs/commands/bitmap/setbit.mdx +31 -0
  33. package/docs/commands/connection/client_setinfo.mdx +91 -0
  34. package/docs/commands/functions/call.mdx +72 -0
  35. package/docs/commands/functions/call_ro.mdx +57 -0
  36. package/docs/commands/functions/delete.mdx +22 -0
  37. package/docs/commands/functions/flush.mdx +16 -0
  38. package/docs/commands/functions/list.mdx +72 -0
  39. package/docs/commands/functions/load.mdx +64 -0
  40. package/docs/commands/functions/stats.mdx +46 -0
  41. package/docs/commands/generic/del.mdx +29 -0
  42. package/docs/commands/generic/exists.mdx +26 -0
  43. package/docs/commands/generic/expire.mdx +29 -0
  44. package/docs/commands/generic/expireat.mdx +29 -0
  45. package/docs/commands/generic/keys.mdx +32 -0
  46. package/docs/commands/generic/persist.mdx +23 -0
  47. package/docs/commands/generic/pexpire.mdx +28 -0
  48. package/docs/commands/generic/pexpireat.mdx +29 -0
  49. package/docs/commands/generic/pttl.mdx +23 -0
  50. package/docs/commands/generic/randomkey.mdx +21 -0
  51. package/docs/commands/generic/rename.mdx +28 -0
  52. package/docs/commands/generic/renamenx.mdx +28 -0
  53. package/docs/commands/generic/scan.mdx +38 -0
  54. package/docs/commands/generic/touch.mdx +23 -0
  55. package/docs/commands/generic/ttl.mdx +23 -0
  56. package/docs/commands/generic/type.mdx +27 -0
  57. package/docs/commands/generic/unlink.mdx +29 -0
  58. package/docs/commands/hash/hdel.mdx +28 -0
  59. package/docs/commands/hash/hexists.mdx +30 -0
  60. package/docs/commands/hash/hexpire.mdx +49 -0
  61. package/docs/commands/hash/hexpireat.mdx +48 -0
  62. package/docs/commands/hash/hexpiretime.mdx +35 -0
  63. package/docs/commands/hash/hget.mdx +29 -0
  64. package/docs/commands/hash/hgetall.mdx +27 -0
  65. package/docs/commands/hash/hgetdel.mdx +67 -0
  66. package/docs/commands/hash/hgetex.mdx +123 -0
  67. package/docs/commands/hash/hincrby.mdx +34 -0
  68. package/docs/commands/hash/hincrbyfloat.mdx +34 -0
  69. package/docs/commands/hash/hkeys.mdx +28 -0
  70. package/docs/commands/hash/hlen.mdx +28 -0
  71. package/docs/commands/hash/hmget.mdx +33 -0
  72. package/docs/commands/hash/hpersist.mdx +37 -0
  73. package/docs/commands/hash/hpexpire.mdx +50 -0
  74. package/docs/commands/hash/hpexpireat.mdx +48 -0
  75. package/docs/commands/hash/hpexpiretime.mdx +35 -0
  76. package/docs/commands/hash/hpttl.mdx +35 -0
  77. package/docs/commands/hash/hrandfield.mdx +57 -0
  78. package/docs/commands/hash/hscan.mdx +65 -0
  79. package/docs/commands/hash/hset.mdx +32 -0
  80. package/docs/commands/hash/hsetex.mdx +186 -0
  81. package/docs/commands/hash/hsetnx.mdx +30 -0
  82. package/docs/commands/hash/hstrlen.mdx +28 -0
  83. package/docs/commands/hash/httl.mdx +35 -0
  84. package/docs/commands/hash/hvals.mdx +29 -0
  85. package/docs/commands/json/arrappend.mdx +35 -0
  86. package/docs/commands/json/arrindex.mdx +37 -0
  87. package/docs/commands/json/arrinsert.mdx +34 -0
  88. package/docs/commands/json/arrlen.mdx +26 -0
  89. package/docs/commands/json/arrpop.mdx +36 -0
  90. package/docs/commands/json/arrtrim.mdx +34 -0
  91. package/docs/commands/json/clear.mdx +30 -0
  92. package/docs/commands/json/del.mdx +26 -0
  93. package/docs/commands/json/forget.mdx +26 -0
  94. package/docs/commands/json/get.mdx +53 -0
  95. package/docs/commands/json/merge.mdx +32 -0
  96. package/docs/commands/json/mget.mdx +27 -0
  97. package/docs/commands/json/mset.mdx +26 -0
  98. package/docs/commands/json/numincrby.mdx +33 -0
  99. package/docs/commands/json/nummultby.mdx +33 -0
  100. package/docs/commands/json/objkeys.mdx +27 -0
  101. package/docs/commands/json/objlen.mdx +27 -0
  102. package/docs/commands/json/set.mdx +42 -0
  103. package/docs/commands/json/strappend.mdx +32 -0
  104. package/docs/commands/json/strlen.mdx +26 -0
  105. package/docs/commands/json/toggle.mdx +28 -0
  106. package/docs/commands/json/type.mdx +28 -0
  107. package/docs/commands/list/lindex.mdx +32 -0
  108. package/docs/commands/list/linsert.mdx +41 -0
  109. package/docs/commands/list/llen.mdx +26 -0
  110. package/docs/commands/list/lmove.mdx +34 -0
  111. package/docs/commands/list/lpop.mdx +37 -0
  112. package/docs/commands/list/lpos.mdx +56 -0
  113. package/docs/commands/list/lpush.mdx +32 -0
  114. package/docs/commands/list/lpushx.mdx +38 -0
  115. package/docs/commands/list/lrange.mdx +37 -0
  116. package/docs/commands/list/lrem.mdx +33 -0
  117. package/docs/commands/list/lset.mdx +34 -0
  118. package/docs/commands/list/ltrim.mdx +33 -0
  119. package/docs/commands/list/rpop.mdx +37 -0
  120. package/docs/commands/list/rpush.mdx +32 -0
  121. package/docs/commands/list/rpushx.mdx +38 -0
  122. package/docs/commands/overview.mdx +692 -0
  123. package/docs/commands/pubsub/psubscribe.mdx +36 -0
  124. package/docs/commands/pubsub/publish.mdx +27 -0
  125. package/docs/commands/pubsub/subscribe.mdx +28 -0
  126. package/docs/commands/scripts/eval.mdx +36 -0
  127. package/docs/commands/scripts/eval_ro.mdx +36 -0
  128. package/docs/commands/scripts/evalsha.mdx +36 -0
  129. package/docs/commands/scripts/evalsha_ro.mdx +36 -0
  130. package/docs/commands/scripts/script_exists.mdx +26 -0
  131. package/docs/commands/scripts/script_flush.mdx +28 -0
  132. package/docs/commands/scripts/script_load.mdx +28 -0
  133. package/docs/commands/server/dbsize.mdx +22 -0
  134. package/docs/commands/server/flushall.mdx +25 -0
  135. package/docs/commands/server/flushdb.mdx +25 -0
  136. package/docs/commands/set/sadd.mdx +32 -0
  137. package/docs/commands/set/scard.mdx +26 -0
  138. package/docs/commands/set/sdiff.mdx +27 -0
  139. package/docs/commands/set/sdiffstore.mdx +32 -0
  140. package/docs/commands/set/sinter.mdx +27 -0
  141. package/docs/commands/set/sinterstore.mdx +33 -0
  142. package/docs/commands/set/sismember.mdx +30 -0
  143. package/docs/commands/set/smembers.mdx +25 -0
  144. package/docs/commands/set/smismember.mdx +31 -0
  145. package/docs/commands/set/smove.mdx +34 -0
  146. package/docs/commands/set/spop.mdx +36 -0
  147. package/docs/commands/set/srandmember.mdx +36 -0
  148. package/docs/commands/set/srem.mdx +29 -0
  149. package/docs/commands/set/sscan.mdx +39 -0
  150. package/docs/commands/set/sunion.mdx +27 -0
  151. package/docs/commands/set/sunionstore.mdx +33 -0
  152. package/docs/commands/stream/xack.mdx +37 -0
  153. package/docs/commands/stream/xackdel.mdx +211 -0
  154. package/docs/commands/stream/xadd.mdx +137 -0
  155. package/docs/commands/stream/xautoclaim.mdx +80 -0
  156. package/docs/commands/stream/xclaim.mdx +84 -0
  157. package/docs/commands/stream/xdel.mdx +34 -0
  158. package/docs/commands/stream/xdelex.mdx +119 -0
  159. package/docs/commands/stream/xgroup.mdx +141 -0
  160. package/docs/commands/stream/xinfo.mdx +77 -0
  161. package/docs/commands/stream/xlen.mdx +22 -0
  162. package/docs/commands/stream/xpending.mdx +75 -0
  163. package/docs/commands/stream/xrange.mdx +59 -0
  164. package/docs/commands/stream/xread.mdx +65 -0
  165. package/docs/commands/stream/xreadgroup.mdx +87 -0
  166. package/docs/commands/stream/xrevrange.mdx +65 -0
  167. package/docs/commands/stream/xtrim.mdx +75 -0
  168. package/docs/commands/string/append.mdx +28 -0
  169. package/docs/commands/string/decr.mdx +27 -0
  170. package/docs/commands/string/decrby.mdx +30 -0
  171. package/docs/commands/string/get.mdx +34 -0
  172. package/docs/commands/string/getdel.mdx +29 -0
  173. package/docs/commands/string/getrange.mdx +34 -0
  174. package/docs/commands/string/getset.mdx +28 -0
  175. package/docs/commands/string/incr.mdx +27 -0
  176. package/docs/commands/string/incrby.mdx +30 -0
  177. package/docs/commands/string/incrbyfloat.mdx +30 -0
  178. package/docs/commands/string/mget.mdx +31 -0
  179. package/docs/commands/string/mset.mdx +32 -0
  180. package/docs/commands/string/msetnx.mdx +29 -0
  181. package/docs/commands/string/set.mdx +79 -0
  182. package/docs/commands/string/setrange.mdx +38 -0
  183. package/docs/commands/string/strlen.mdx +26 -0
  184. package/docs/commands/transaction.mdx +22 -0
  185. package/docs/commands/zset/zadd.mdx +102 -0
  186. package/docs/commands/zset/zcard.mdx +31 -0
  187. package/docs/commands/zset/zcount.mdx +47 -0
  188. package/docs/commands/zset/zdiffstore.mdx +33 -0
  189. package/docs/commands/zset/zincrby.mdx +37 -0
  190. package/docs/commands/zset/zinterstore.mdx +98 -0
  191. package/docs/commands/zset/zlexcount.mdx +43 -0
  192. package/docs/commands/zset/zmscore.mdx +34 -0
  193. package/docs/commands/zset/zpopmax.mdx +25 -0
  194. package/docs/commands/zset/zpopmin.mdx +25 -0
  195. package/docs/commands/zset/zrange.mdx +85 -0
  196. package/docs/commands/zset/zrank.mdx +29 -0
  197. package/docs/commands/zset/zrem.mdx +33 -0
  198. package/docs/commands/zset/zremrangebylex.mdx +32 -0
  199. package/docs/commands/zset/zremrangebyrank.mdx +32 -0
  200. package/docs/commands/zset/zremrangebyscore.mdx +32 -0
  201. package/docs/commands/zset/zrevrank.mdx +29 -0
  202. package/docs/commands/zset/zscan.mdx +58 -0
  203. package/docs/commands/zset/zscore.mdx +34 -0
  204. package/docs/commands/zset/zunionstore.mdx +98 -0
  205. package/docs/deployment.mdx +117 -0
  206. package/docs/developing.mdx +118 -0
  207. package/docs/getstarted.mdx +68 -0
  208. package/docs/overview.mdx +29 -0
  209. package/docs/pipelining/auto-pipeline.mdx +108 -0
  210. package/docs/pipelining/pipeline-transaction.mdx +65 -0
  211. package/docs/retries.mdx +24 -0
  212. package/docs/troubleshooting.mdx +80 -0
  213. package/{error-BNzLTXJG.d.mts → error-4e36-PC0.d.mts} +838 -8
  214. package/{error-BNzLTXJG.d.ts → error-4e36-PC0.d.ts} +838 -8
  215. package/fastly.d.mts +2 -2
  216. package/fastly.d.ts +2 -2
  217. package/fastly.js +557 -4
  218. package/fastly.mjs +1 -1
  219. package/nodejs.d.mts +34 -2
  220. package/nodejs.d.ts +34 -2
  221. package/nodejs.js +586 -4
  222. package/nodejs.mjs +30 -1
  223. package/package.json +16 -5
  224. package/src/pkg/auto-pipeline.ts +284 -0
  225. package/src/pkg/commands/append.ts +12 -0
  226. package/src/pkg/commands/arcount.ts +14 -0
  227. package/src/pkg/commands/ardel.ts +19 -0
  228. package/src/pkg/commands/ardelrange.ts +19 -0
  229. package/src/pkg/commands/arget.ts +17 -0
  230. package/src/pkg/commands/argetrange.ts +20 -0
  231. package/src/pkg/commands/argrep.ts +109 -0
  232. package/src/pkg/commands/arinfo.ts +88 -0
  233. package/src/pkg/commands/arinsert.ts +24 -0
  234. package/src/pkg/commands/arlastitems.ts +29 -0
  235. package/src/pkg/commands/arlen.ts +23 -0
  236. package/src/pkg/commands/armget.ts +18 -0
  237. package/src/pkg/commands/armset.ts +26 -0
  238. package/src/pkg/commands/arnext.ts +20 -0
  239. package/src/pkg/commands/arop.ts +48 -0
  240. package/src/pkg/commands/arring.ts +23 -0
  241. package/src/pkg/commands/arscan.ts +44 -0
  242. package/src/pkg/commands/arseek.ts +17 -0
  243. package/src/pkg/commands/arset.ts +20 -0
  244. package/src/pkg/commands/bitcount.ts +30 -0
  245. package/src/pkg/commands/bitfield.ts +50 -0
  246. package/src/pkg/commands/bitop.ts +35 -0
  247. package/src/pkg/commands/bitpos.ts +15 -0
  248. package/src/pkg/commands/client_setinfo.ts +17 -0
  249. package/src/pkg/commands/command.ts +142 -0
  250. package/src/pkg/commands/copy.ts +22 -0
  251. package/src/pkg/commands/dbsize.ts +12 -0
  252. package/src/pkg/commands/decr.ts +12 -0
  253. package/src/pkg/commands/decrby.ts +12 -0
  254. package/src/pkg/commands/del.ts +12 -0
  255. package/src/pkg/commands/echo.ts +12 -0
  256. package/src/pkg/commands/eval.ts +18 -0
  257. package/src/pkg/commands/evalRo.ts +18 -0
  258. package/src/pkg/commands/evalsha.ts +18 -0
  259. package/src/pkg/commands/evalshaRo.ts +18 -0
  260. package/src/pkg/commands/exec.ts +23 -0
  261. package/src/pkg/commands/exists.ts +12 -0
  262. package/src/pkg/commands/expire.ts +13 -0
  263. package/src/pkg/commands/expireat.ts +16 -0
  264. package/src/pkg/commands/fcall.ts +15 -0
  265. package/src/pkg/commands/fcall_ro.ts +18 -0
  266. package/src/pkg/commands/flushall.ts +15 -0
  267. package/src/pkg/commands/flushdb.ts +15 -0
  268. package/src/pkg/commands/function_delete.ts +12 -0
  269. package/src/pkg/commands/function_flush.ts +12 -0
  270. package/src/pkg/commands/function_list.ts +77 -0
  271. package/src/pkg/commands/function_load.ts +31 -0
  272. package/src/pkg/commands/function_stats.ts +42 -0
  273. package/src/pkg/commands/geo_add.ts +54 -0
  274. package/src/pkg/commands/geo_dist.ts +19 -0
  275. package/src/pkg/commands/geo_hash.ts +23 -0
  276. package/src/pkg/commands/geo_pos.ts +39 -0
  277. package/src/pkg/commands/geo_search.ts +140 -0
  278. package/src/pkg/commands/geo_search_store.ts +69 -0
  279. package/src/pkg/commands/get.ts +15 -0
  280. package/src/pkg/commands/getbit.ts +12 -0
  281. package/src/pkg/commands/getdel.ts +15 -0
  282. package/src/pkg/commands/getex.ts +36 -0
  283. package/src/pkg/commands/getrange.ts +15 -0
  284. package/src/pkg/commands/getset.ts +15 -0
  285. package/src/pkg/commands/hdel.ts +12 -0
  286. package/src/pkg/commands/hexists.ts +12 -0
  287. package/src/pkg/commands/hexpire.ts +30 -0
  288. package/src/pkg/commands/hexpireat.ts +30 -0
  289. package/src/pkg/commands/hexpiretime.ts +13 -0
  290. package/src/pkg/commands/hget.ts +18 -0
  291. package/src/pkg/commands/hgetall.ts +44 -0
  292. package/src/pkg/commands/hgetdel.ts +30 -0
  293. package/src/pkg/commands/hgetex.ts +56 -0
  294. package/src/pkg/commands/hincrby.ts +15 -0
  295. package/src/pkg/commands/hincrbyfloat.ts +15 -0
  296. package/src/pkg/commands/hkeys.ts +12 -0
  297. package/src/pkg/commands/hlen.ts +12 -0
  298. package/src/pkg/commands/hmget.ts +53 -0
  299. package/src/pkg/commands/hmset.ts +14 -0
  300. package/src/pkg/commands/hpersist.ts +13 -0
  301. package/src/pkg/commands/hpexpire.ts +30 -0
  302. package/src/pkg/commands/hpexpireat.ts +30 -0
  303. package/src/pkg/commands/hpexpiretime.ts +13 -0
  304. package/src/pkg/commands/hpttl.ts +13 -0
  305. package/src/pkg/commands/hrandfield.ts +52 -0
  306. package/src/pkg/commands/hscan.ts +31 -0
  307. package/src/pkg/commands/hset.ts +15 -0
  308. package/src/pkg/commands/hsetex.ts +59 -0
  309. package/src/pkg/commands/hsetnx.ts +15 -0
  310. package/src/pkg/commands/hstrlen.ts +12 -0
  311. package/src/pkg/commands/httl.ts +13 -0
  312. package/src/pkg/commands/hvals.ts +12 -0
  313. package/src/pkg/commands/incr.ts +12 -0
  314. package/src/pkg/commands/incrby.ts +12 -0
  315. package/src/pkg/commands/incrbyfloat.ts +12 -0
  316. package/src/pkg/commands/json_arrappend.ts +18 -0
  317. package/src/pkg/commands/json_arrindex.ts +15 -0
  318. package/src/pkg/commands/json_arrinsert.ts +18 -0
  319. package/src/pkg/commands/json_arrlen.ts +15 -0
  320. package/src/pkg/commands/json_arrpop.ts +15 -0
  321. package/src/pkg/commands/json_arrtrim.ts +19 -0
  322. package/src/pkg/commands/json_clear.ts +12 -0
  323. package/src/pkg/commands/json_del.ts +12 -0
  324. package/src/pkg/commands/json_forget.ts +12 -0
  325. package/src/pkg/commands/json_get.ts +45 -0
  326. package/src/pkg/commands/json_merge.ts +18 -0
  327. package/src/pkg/commands/json_mget.ts +12 -0
  328. package/src/pkg/commands/json_mset.ts +27 -0
  329. package/src/pkg/commands/json_numincrby.ts +15 -0
  330. package/src/pkg/commands/json_nummultby.ts +15 -0
  331. package/src/pkg/commands/json_objkeys.ts +15 -0
  332. package/src/pkg/commands/json_objlen.ts +15 -0
  333. package/src/pkg/commands/json_resp.ts +11 -0
  334. package/src/pkg/commands/json_set.ts +35 -0
  335. package/src/pkg/commands/json_strappend.ts +15 -0
  336. package/src/pkg/commands/json_strlen.ts +15 -0
  337. package/src/pkg/commands/json_toggle.ts +12 -0
  338. package/src/pkg/commands/json_type.ts +12 -0
  339. package/src/pkg/commands/keys.ts +12 -0
  340. package/src/pkg/commands/lindex.ts +11 -0
  341. package/src/pkg/commands/linsert.ts +10 -0
  342. package/src/pkg/commands/llen.ts +12 -0
  343. package/src/pkg/commands/lmove.ts +20 -0
  344. package/src/pkg/commands/lmpop.ts +19 -0
  345. package/src/pkg/commands/lpop.ts +18 -0
  346. package/src/pkg/commands/lpos.ts +26 -0
  347. package/src/pkg/commands/lpush.ts +12 -0
  348. package/src/pkg/commands/lpushx.ts +12 -0
  349. package/src/pkg/commands/lrange.ts +11 -0
  350. package/src/pkg/commands/lrem.ts +10 -0
  351. package/src/pkg/commands/lset.ts +8 -0
  352. package/src/pkg/commands/ltrim.ts +8 -0
  353. package/src/pkg/commands/mget.ts +15 -0
  354. package/src/pkg/commands/mod.ts +222 -0
  355. package/src/pkg/commands/mset.ts +12 -0
  356. package/src/pkg/commands/msetnx.ts +12 -0
  357. package/src/pkg/commands/persist.ts +12 -0
  358. package/src/pkg/commands/pexpire.ts +16 -0
  359. package/src/pkg/commands/pexpireat.ts +16 -0
  360. package/src/pkg/commands/pfadd.ts +11 -0
  361. package/src/pkg/commands/pfcount.ts +11 -0
  362. package/src/pkg/commands/pfmerge.ts +11 -0
  363. package/src/pkg/commands/ping.ts +15 -0
  364. package/src/pkg/commands/psetex.ts +14 -0
  365. package/src/pkg/commands/psubscribe.ts +26 -0
  366. package/src/pkg/commands/pttl.ts +12 -0
  367. package/src/pkg/commands/publish.ts +12 -0
  368. package/src/pkg/commands/randomkey.ts +12 -0
  369. package/src/pkg/commands/rename.ts +12 -0
  370. package/src/pkg/commands/renamenx.ts +12 -0
  371. package/src/pkg/commands/rpop.ts +21 -0
  372. package/src/pkg/commands/rpush.ts +12 -0
  373. package/src/pkg/commands/rpushx.ts +12 -0
  374. package/src/pkg/commands/sadd.ts +15 -0
  375. package/src/pkg/commands/scan.ts +63 -0
  376. package/src/pkg/commands/scard.ts +11 -0
  377. package/src/pkg/commands/script_exists.ts +15 -0
  378. package/src/pkg/commands/script_flush.ts +22 -0
  379. package/src/pkg/commands/script_load.ts +12 -0
  380. package/src/pkg/commands/sdiff.ts +11 -0
  381. package/src/pkg/commands/sdiffstore.ts +14 -0
  382. package/src/pkg/commands/search/command-builder.ts +162 -0
  383. package/src/pkg/commands/search/index.ts +4 -0
  384. package/src/pkg/commands/search/schema-builder.ts +320 -0
  385. package/src/pkg/commands/search/search.ts +218 -0
  386. package/src/pkg/commands/search/types.ts +1029 -0
  387. package/src/pkg/commands/search/utils.ts +275 -0
  388. package/src/pkg/commands/set.ts +52 -0
  389. package/src/pkg/commands/setbit.ts +15 -0
  390. package/src/pkg/commands/setex.ts +11 -0
  391. package/src/pkg/commands/setnx.ts +11 -0
  392. package/src/pkg/commands/setrange.ts +15 -0
  393. package/src/pkg/commands/sinter.ts +11 -0
  394. package/src/pkg/commands/sintercard.ts +19 -0
  395. package/src/pkg/commands/sinterstore.ts +14 -0
  396. package/src/pkg/commands/sismember.ts +11 -0
  397. package/src/pkg/commands/smembers.ts +12 -0
  398. package/src/pkg/commands/smismember.ts +17 -0
  399. package/src/pkg/commands/smove.ts +14 -0
  400. package/src/pkg/commands/spop.ts +18 -0
  401. package/src/pkg/commands/srandmember.ts +18 -0
  402. package/src/pkg/commands/srem.ts +11 -0
  403. package/src/pkg/commands/sscan.ts +31 -0
  404. package/src/pkg/commands/strlen.ts +12 -0
  405. package/src/pkg/commands/subscribe.ts +254 -0
  406. package/src/pkg/commands/sunion.ts +12 -0
  407. package/src/pkg/commands/sunionstore.ts +15 -0
  408. package/src/pkg/commands/time.ts +10 -0
  409. package/src/pkg/commands/touch.ts +12 -0
  410. package/src/pkg/commands/ttl.ts +12 -0
  411. package/src/pkg/commands/type.ts +13 -0
  412. package/src/pkg/commands/types.ts +201 -0
  413. package/src/pkg/commands/unlink.ts +12 -0
  414. package/src/pkg/commands/vector/index.ts +11 -0
  415. package/src/pkg/commands/vector/types.ts +63 -0
  416. package/src/pkg/commands/vector/utils.ts +67 -0
  417. package/src/pkg/commands/vector/vector.ts +131 -0
  418. package/src/pkg/commands/vector_add.ts +18 -0
  419. package/src/pkg/commands/vector_count.ts +11 -0
  420. package/src/pkg/commands/vector_create.ts +28 -0
  421. package/src/pkg/commands/vector_del.ts +13 -0
  422. package/src/pkg/commands/vector_drop.ts +13 -0
  423. package/src/pkg/commands/vector_get.ts +18 -0
  424. package/src/pkg/commands/vector_info.ts +25 -0
  425. package/src/pkg/commands/vector_query.ts +24 -0
  426. package/src/pkg/commands/xack.ts +16 -0
  427. package/src/pkg/commands/xackdel.ts +21 -0
  428. package/src/pkg/commands/xadd.ts +70 -0
  429. package/src/pkg/commands/xautoclaim.ts +31 -0
  430. package/src/pkg/commands/xclaim.ts +56 -0
  431. package/src/pkg/commands/xdel.ts +16 -0
  432. package/src/pkg/commands/xdelex.ts +25 -0
  433. package/src/pkg/commands/xgroup.ts +101 -0
  434. package/src/pkg/commands/xinfo.ts +28 -0
  435. package/src/pkg/commands/xlen.ts +12 -0
  436. package/src/pkg/commands/xpending.ts +44 -0
  437. package/src/pkg/commands/xrange.ts +49 -0
  438. package/src/pkg/commands/xread.ts +78 -0
  439. package/src/pkg/commands/xreadgroup.ts +74 -0
  440. package/src/pkg/commands/xrevrange.ts +48 -0
  441. package/src/pkg/commands/xtrim.ts +25 -0
  442. package/src/pkg/commands/zadd.ts +54 -0
  443. package/src/pkg/commands/zcard.ts +12 -0
  444. package/src/pkg/commands/zcount.ts +14 -0
  445. package/src/pkg/commands/zdiffstore.ts +15 -0
  446. package/src/pkg/commands/zincrby.ts +14 -0
  447. package/src/pkg/commands/zinterstore.ts +51 -0
  448. package/src/pkg/commands/zlexcount.ts +11 -0
  449. package/src/pkg/commands/zmscore.ts +16 -0
  450. package/src/pkg/commands/zpopmax.ts +18 -0
  451. package/src/pkg/commands/zpopmin.ts +18 -0
  452. package/src/pkg/commands/zrange.ts +72 -0
  453. package/src/pkg/commands/zrank.ts +14 -0
  454. package/src/pkg/commands/zrem.ts +11 -0
  455. package/src/pkg/commands/zremrangebylex.ts +11 -0
  456. package/src/pkg/commands/zremrangebyrank.ts +14 -0
  457. package/src/pkg/commands/zremrangebyscore.ts +18 -0
  458. package/src/pkg/commands/zrevrank.ts +14 -0
  459. package/src/pkg/commands/zscan.ts +31 -0
  460. package/src/pkg/commands/zscore.ts +15 -0
  461. package/src/pkg/commands/zunion.ts +54 -0
  462. package/src/pkg/commands/zunionstore.ts +52 -0
  463. package/src/pkg/error.ts +28 -0
  464. package/src/pkg/http.ts +458 -0
  465. package/src/pkg/index.ts +1 -0
  466. package/src/pkg/pipeline.ts +2041 -0
  467. package/src/pkg/redis.ts +2130 -0
  468. package/src/pkg/script.ts +100 -0
  469. package/src/pkg/scriptRo.ts +98 -0
  470. package/src/pkg/types.ts +35 -0
  471. package/src/pkg/util.ts +115 -0
  472. package/src/platforms/cloudflare.ts +162 -0
  473. package/src/platforms/fastly.ts +105 -0
  474. package/src/platforms/nodejs.ts +231 -0
  475. package/src/version.ts +1 -0
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: XREAD
3
+ description: Reads data from one or multiple streams, starting from the specified IDs.
4
+ ---
5
+
6
+ ## Arguments
7
+
8
+ <ParamField body="key" type="string | string[]" required>
9
+ The key(s) of the stream(s). Can be a single stream key or an array of stream keys.
10
+ </ParamField>
11
+
12
+ <ParamField body="id" type="string | string[]" required>
13
+ The stream entry ID(s) to start reading from. Must match the number of keys provided.
14
+ Use `$` to read only new messages added after the command is issued.
15
+ </ParamField>
16
+
17
+ <ParamField body="options">
18
+ <Expandable title="properties">
19
+ <ParamField body="count" type="number">
20
+ The maximum number of messages to return per stream.
21
+ </ParamField>
22
+ </Expandable>
23
+ </ParamField>
24
+
25
+ ## Response
26
+
27
+ <ResponseField type="Array<[string, Array<[string, string[]]>]> | null">
28
+ Returns an array where each element represents a stream and contains:
29
+ - The stream key
30
+ - An array of messages (ID and field-value pairs)
31
+
32
+ Returns null if no data is available.
33
+ </ResponseField>
34
+
35
+ <RequestExample>
36
+ ```ts Single stream
37
+ const result = await redis.xread("mystream", "0-0");
38
+ ```
39
+
40
+ ```ts Multiple streams
41
+ const result = await redis.xread(
42
+ ["stream1", "stream2"],
43
+ ["0-0", "0-0"]
44
+ );
45
+ ```
46
+
47
+ ```ts With count limit
48
+ const result = await redis.xread("mystream", "0-0", { count: 2 });
49
+ ```
50
+
51
+ ```ts Only new messages
52
+ const result = await redis.xread("mystream", `$`);
53
+ ```
54
+ </RequestExample>
55
+
56
+ <ResponseExample>
57
+ ```ts
58
+ [
59
+ ["mystream", [
60
+ ["1638360173533-0", ["field1", "value1", "field2", "value2"]],
61
+ ["1638360173533-1", ["field1", "value3", "field2", "value4"]]
62
+ ]]
63
+ ]
64
+ ```
65
+ </ResponseExample>
@@ -0,0 +1,87 @@
1
+ ---
2
+ title: XREADGROUP
3
+ description: Reads data from a stream as part of a consumer group.
4
+ ---
5
+
6
+ ## Arguments
7
+
8
+ <ParamField body="group" type="string" required>
9
+ The consumer group name.
10
+ </ParamField>
11
+
12
+ <ParamField body="consumer" type="string" required>
13
+ The consumer name within the group.
14
+ </ParamField>
15
+
16
+ <ParamField body="key" type="string | string[]" required>
17
+ The stream key(s) to read from. Can be a single stream key or an array of stream keys for multiple streams.
18
+ </ParamField>
19
+
20
+ <ParamField body="ids" type="string | string[]" required>
21
+ The starting ID(s) to read from. Use ">" to read messages never delivered to any consumer in the group.
22
+ For multiple streams, provide an array of IDs corresponding to each stream.
23
+ </ParamField>
24
+
25
+ <ParamField body="options">
26
+ <Expandable title="properties">
27
+ <ParamField body="count" type="number">
28
+ The maximum number of messages to return per stream.
29
+ </ParamField>
30
+ <ParamField body="NOACK" type="boolean">
31
+ Don't add messages to the pending entries list (messages won't need acknowledgment).
32
+ </ParamField>
33
+ </Expandable>
34
+ </ParamField>
35
+
36
+ ## Response
37
+
38
+ <ResponseField type="Array<[string, Array<[string, string[]]>]> | null">
39
+ Returns an array where each element represents a stream and contains:
40
+ - The stream key
41
+ - An array of messages (ID and field-value pairs)
42
+
43
+ Returns null if no data is available.
44
+ </ResponseField>
45
+
46
+ <RequestExample>
47
+ ```ts Read new messages
48
+ const result = await redis.xreadgroup("mygroup", "consumer1", "mystream", ">");
49
+ ```
50
+
51
+ ```ts With count option
52
+ const result = await redis.xreadgroup("mygroup", "consumer1", "mystream", ">", {
53
+ count: 5
54
+ });
55
+ ```
56
+
57
+ ```ts With NOACK option
58
+ const result = await redis.xreadgroup("mygroup", "consumer1", "mystream", ">", {
59
+ NOACK: true
60
+ });
61
+ ```
62
+
63
+ ```ts Multiple streams
64
+ const result = await redis.xreadgroup(
65
+ "mygroup",
66
+ "consumer1",
67
+ ["stream1", "stream2"],
68
+ [">", ">"],
69
+ { count: 1 }
70
+ );
71
+ ```
72
+
73
+ ```ts Read pending messages
74
+ const result = await redis.xreadgroup("mygroup", "consumer1", "mystream", "0");
75
+ ```
76
+ </RequestExample>
77
+
78
+ <ResponseExample>
79
+ ```ts
80
+ [
81
+ ["mystream", [
82
+ ["1638360173533-0", ["field1", "value1", "field2", "value2"]],
83
+ ["1638360173533-1", ["field1", "value3", "field2", "value4"]]
84
+ ]]
85
+ ]
86
+ ```
87
+ </ResponseExample>
@@ -0,0 +1,65 @@
1
+ ---
2
+ title: XREVRANGE
3
+ description: Returns stream entries matching a given range of IDs in reverse order.
4
+ ---
5
+
6
+ ## Arguments
7
+
8
+ <ParamField body="key" type="string" required>
9
+ The key of the stream.
10
+ </ParamField>
11
+
12
+ <ParamField body="end" type="string" required>
13
+ The stream entry ID to end at (highest ID).
14
+ </ParamField>
15
+
16
+ <ParamField body="start" type="string" required>
17
+ The stream entry ID to start from (lowest ID).
18
+ </ParamField>
19
+
20
+ <ParamField body="count" type="number">
21
+ The maximum number of entries to return.
22
+ </ParamField>
23
+
24
+ ## Response
25
+
26
+ <ResponseField type="Record<string, Record<string, unknown>>">
27
+ An object of stream entries in reverse chronological order, keyed by their stream ID.
28
+ </ResponseField>
29
+
30
+ <RequestExample>
31
+ ```ts All entries (reverse order)
32
+ const result = await redis.xrevrange("mystream", "+", "-");
33
+ ```
34
+
35
+ ```ts Limited count
36
+ const result = await redis.xrevrange("mystream", "+", "-", 2);
37
+ ```
38
+
39
+ ```ts Specific range
40
+ const result = await redis.xrevrange(
41
+ "mystream",
42
+ "1638360173533-3",
43
+ "1638360173533-1"
44
+ );
45
+ ```
46
+ </RequestExample>
47
+
48
+ <ResponseExample>
49
+ ```ts
50
+ {
51
+ "1638360173533-4": {
52
+ "field1": "value5",
53
+ "field2": "value6"
54
+ },
55
+ "1638360173533-3": {
56
+ "field1": "value3",
57
+ "field2": "value4"
58
+ },
59
+ "1638360173533-0": {
60
+ "field1": "value1",
61
+ "field2": "value2"
62
+ }
63
+ }
64
+ ```
65
+ </ResponseExample>
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: XTRIM
3
+ description: Trims the stream by removing entries to keep it at a reasonable size.
4
+ ---
5
+
6
+ ## Arguments
7
+
8
+ <ParamField body="key" type="string" required>
9
+ The key of the stream.
10
+ </ParamField>
11
+
12
+ <ParamField body="options" type="object" required>
13
+ <Expandable title="properties">
14
+ <ParamField body="strategy" type="'MAXLEN' | 'MINID'" required>
15
+ The trimming strategy:
16
+ - `MAXLEN`: Trim based on the maximum number of entries
17
+ - `MINID`: Trim based on the minimum ID
18
+ </ParamField>
19
+
20
+ <ParamField body="threshold" type="number | string" required>
21
+ The threshold value for trimming:
22
+ - For `MAXLEN`: The maximum number of entries to keep (number)
23
+ - For `MINID`: The minimum ID to keep (string). Entries with IDs lower than this will be removed
24
+ </ParamField>
25
+
26
+ <ParamField body="exactness" type="'~' | '='">
27
+ Use `~` for approximate trimming (more efficient, default) or `=` for exact trimming.
28
+ </ParamField>
29
+
30
+ <ParamField body="limit" type="number">
31
+ Limit how many entries will be trimmed at most (only valid with approximate trimming `~`).
32
+ </ParamField>
33
+ </Expandable>
34
+ </ParamField>
35
+
36
+ ## Response
37
+
38
+ <ResponseField type="number">
39
+ The number of entries removed from the stream.
40
+ </ResponseField>
41
+
42
+ <RequestExample>
43
+ ```ts Approximate trim by max length
44
+ const result = await redis.xtrim("mystream", {
45
+ strategy: "MAXLEN",
46
+ threshold: 100,
47
+ exactness: "~"
48
+ });
49
+ ```
50
+
51
+ ```ts Exact trim by max length
52
+ const result = await redis.xtrim("mystream", {
53
+ strategy: "MAXLEN",
54
+ threshold: 50,
55
+ exactness: "="
56
+ });
57
+ ```
58
+
59
+ ```ts Trim by minimum ID
60
+ const result = await redis.xtrim("mystream", {
61
+ strategy: "MINID",
62
+ threshold: "1638360173533-0",
63
+ exactness: "="
64
+ });
65
+ ```
66
+
67
+ ```ts Approximate trim with limit
68
+ const result = await redis.xtrim("mystream", {
69
+ strategy: "MAXLEN",
70
+ threshold: 1000,
71
+ exactness: "~",
72
+ limit: 100
73
+ });
74
+ ```
75
+ </RequestExample>
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: APPEND
3
+ description: Append a value to a string stored at key.
4
+ ---
5
+
6
+
7
+ ## Arguments
8
+
9
+ <ParamField body="key"type="string" required>
10
+ The key to get.
11
+ </ParamField>
12
+
13
+ <ParamField body="value" required>
14
+ The value to append.
15
+ </ParamField>
16
+
17
+ ## Response
18
+
19
+ <ResponseField type="integer" required>
20
+ How many characters were added to the string.
21
+ </ResponseField>
22
+
23
+ <RequestExample>
24
+ ```ts Example
25
+ await redis.append(key, "Hello");
26
+ // returns 5
27
+ ```
28
+ </RequestExample>
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: DECR
3
+ description: Decrement the integer value of a key by one
4
+ ---
5
+
6
+ If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="key" type="string" required>
11
+ The key to decrement.
12
+ </ParamField>
13
+
14
+
15
+ ## Response
16
+
17
+ <ResponseField type="integer" required>
18
+ The value at the key after the decrementing.
19
+ </ResponseField>
20
+
21
+ <RequestExample>
22
+ ```ts Example
23
+ await redis.set("key", 6);
24
+ await redis.decr("key");
25
+ // returns 5
26
+ ```
27
+ </RequestExample>
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: DECRBY
3
+ description: Decrement the integer value of a key by a given number.
4
+ ---
5
+
6
+ If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="key" type="string"required>
11
+ The key to decrement.
12
+ </ParamField>
13
+ <ParamField body="decrementBy" type="integer" required>
14
+ The amount to decrement by.
15
+ </ParamField>
16
+
17
+
18
+ ## Response
19
+
20
+ <ResponseField type="integer" required>
21
+ The value at the key after the decrementing.
22
+ </ResponseField>
23
+
24
+ <RequestExample>
25
+ ```ts Example
26
+ await redis.set("key", 6);
27
+ await redis.decrby("key", 4);
28
+ // returns 2
29
+ ```
30
+ </RequestExample>
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: GET
3
+ description: Return the value of the specified key or `null` if the key doesn't exist.
4
+ ---
5
+
6
+
7
+ ## Arguments
8
+
9
+ <ParamField body="key" type="string" required>
10
+ The key to get.
11
+ </ParamField>
12
+
13
+ ## Response
14
+
15
+ <ResponseField required>
16
+ The response is the value stored at the key or `null` if the key doesn't exist.
17
+ </ResponseField>
18
+
19
+
20
+
21
+ <RequestExample>
22
+ ```ts Example
23
+ type MyType = {
24
+ a: number;
25
+ b: string;
26
+ }
27
+ const value = await redis.get<MyType>("key");
28
+ if (!value) {
29
+ // key doesn't exist
30
+ } else {
31
+ // value is of type MyType
32
+ }
33
+ ```
34
+ </RequestExample>
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: GETDEL
3
+ description: Return the value of the specified key and delete the key.
4
+ ---
5
+
6
+
7
+ ## Arguments
8
+
9
+ <ParamField body="key" type="string" required>
10
+ The key to get.
11
+ </ParamField>
12
+
13
+ ## Response
14
+
15
+ <ResponseField required>
16
+
17
+ The response is the value stored at the key or `null` if the key doesn't exist.
18
+ </ResponseField>
19
+
20
+ <RequestExample>
21
+ ```ts Example
22
+ type MyType = {
23
+ a: number;
24
+ b: string;
25
+ }
26
+ await redis.getdel<MyType>("key");
27
+ // returns {a: 1, b: "2"}
28
+ ```
29
+ </RequestExample>
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: GETRANGE
3
+ description: Return a substring of value at the specified key.
4
+ ---
5
+
6
+
7
+ ## Arguments
8
+
9
+ <ParamField body="key" type="string" required>
10
+ The key to get.
11
+ </ParamField>
12
+
13
+ <ParamField body="start" type="integer" required>
14
+ The start index of the substring.
15
+ </ParamField>
16
+
17
+ <ParamField body="end" type="integer" required>
18
+ The end index of the substring.
19
+ </ParamField>
20
+
21
+
22
+ ## Response
23
+
24
+ <ResponseField type="string" required>
25
+ The substring.
26
+ </ResponseField>
27
+
28
+
29
+
30
+ <RequestExample>
31
+ ```ts Example
32
+ const substring = await redis.getrange("key", 2, 4);
33
+ ```
34
+ </RequestExample>
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: GETSET
3
+ description: Return the value of the specified key and replace it with a new value.
4
+ ---
5
+
6
+
7
+ ## Arguments
8
+
9
+ <ParamField body="key" type="string" required>
10
+ The key to get.
11
+ </ParamField>
12
+
13
+ <ParamField body="newValue" required>
14
+ The new value to store.
15
+ </ParamField>
16
+
17
+ ## Response
18
+ <ResponseField required>
19
+
20
+ The response is the value stored at the key or `null` if the key doesn't exist.
21
+ </ResponseField>
22
+
23
+ <RequestExample>
24
+ ```ts Example
25
+
26
+ const oldValue = await redis.getset("key", newValue);
27
+ ```
28
+ </RequestExample>
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: INCR
3
+ description: Increment the integer value of a key by one
4
+ ---
5
+
6
+ If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="key" type="string" required>
11
+ The key to increment.
12
+ </ParamField>
13
+
14
+
15
+ ## Response
16
+
17
+ <ResponseField type="integer" required>
18
+ The value at the key after the incrementing.
19
+ </ResponseField>
20
+
21
+ <RequestExample>
22
+ ```ts Example
23
+ await redis.set("key", 6);
24
+ await redis.incr("key");
25
+ // returns 7
26
+ ```
27
+ </RequestExample>
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: INCRBY
3
+ description: Increment the integer value of a key by a given number.
4
+ ---
5
+
6
+ If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="key" type="string"required>
11
+ The key to decrement.
12
+ </ParamField>
13
+ <ParamField body="incrementBy" type="integer" required>
14
+ The amount to increment by.
15
+ </ParamField>
16
+
17
+
18
+ ## Response
19
+
20
+ <ResponseField type="integer" required>
21
+ The value at the key after the incrementing.
22
+ </ResponseField>
23
+
24
+ <RequestExample>
25
+ ```ts Example
26
+ await redis.set("key", 6);
27
+ await redis.incrby("key", 4);
28
+ // returns 10
29
+ ```
30
+ </RequestExample>
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: INCRBYFLOAT
3
+ description: Increment the float value of a key by a given number.
4
+ ---
5
+
6
+ If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="key" type="string"required>
11
+ The key to decrement.
12
+ </ParamField>
13
+ <ParamField body="incrementBy" type="float" required>
14
+ The amount to increment by.
15
+ </ParamField>
16
+
17
+
18
+ ## Response
19
+
20
+ <ResponseField type="float" required>
21
+ The value at the key after the incrementing.
22
+ </ResponseField>
23
+
24
+ <RequestExample>
25
+ ```ts Example
26
+ await redis.set("key", 6);
27
+ await redis.incrbyfloat("key", 4,5);
28
+ // returns 10.5
29
+ ```
30
+ </RequestExample>
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: MGET
3
+ description: Load multiple keys from Redis in one go.
4
+ ---
5
+
6
+ For billing purposes, this counts as a single command.
7
+
8
+ ## Arguments
9
+
10
+ <ParamField body="keys" type="...string" required>
11
+ Multiple keys to load from Redis.
12
+ </ParamField>
13
+
14
+ ## Response
15
+
16
+ <ResponseField type="T[]" required>
17
+ An array of values corresponding to the keys passed in. If a key doesn't exist, the value will be `null`.
18
+ </ResponseField>
19
+
20
+
21
+
22
+ <RequestExample>
23
+ ```ts Example
24
+ type MyType = {
25
+ a: number;
26
+ b: string;
27
+ }
28
+ const values = await redis.mget<MyType>("key1", "key2", "key3");
29
+ // values.length -> 3
30
+ ```
31
+ </RequestExample>
@@ -0,0 +1,32 @@
1
+ ---
2
+ title: MSET
3
+ description: Set multiple keys in one go.
4
+ ---
5
+
6
+
7
+ For billing purposes, this counts as a single command.
8
+
9
+
10
+ ## Arguments
11
+
12
+ <ParamField body="params" type="Record<string, TValue>" required>
13
+ An object where the keys are the keys to set, and the values are the values to set.
14
+ </ParamField>
15
+
16
+ ## Response
17
+
18
+ <ResponseField type="string" required>
19
+ "OK"
20
+ </ResponseField>
21
+
22
+
23
+
24
+ <RequestExample>
25
+ ```ts Example
26
+ await redis.mset({
27
+ key1: 1,
28
+ key2: "hello",
29
+ key3: { a: 1, b: "hello" },
30
+ });
31
+ ```
32
+ </RequestExample>
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: MSETNX
3
+ description: Set multiple keys in one go unless they exist already.
4
+ ---
5
+
6
+
7
+ For billing purposes, this counts as a single command.
8
+
9
+
10
+ ## Arguments
11
+
12
+ <ParamField type="Record<string, TValue>" required>
13
+ An object where the keys are the keys to set, and the values are the values to set.
14
+ </ParamField>
15
+
16
+ ## Response
17
+
18
+ <ResponseField required>
19
+ `True` if all keys were set, `False` if at least one key was not set.
20
+ </ResponseField>
21
+
22
+ <RequestExample>
23
+ ```ts Example
24
+ redis.msetnx({
25
+ "key1": "value1",
26
+ "key2": "value2"
27
+ })
28
+ ```
29
+ </RequestExample>