JavaScript API

JavaScript API 概述

Redis 开源 Redis Enterprise Software Redis 云 Redis 开源 Redis Enterprise for Kubernetes 客户端

Redis 对象

  • 自版本: 2.0.0

触发器和函数 JavaScript API 提供一个名为 redis 的对象的单例实例。redis 实例使注册的函数能够与运行它们的 Redis 服务器交互。以下是 redis 实例提供的 API。

redis.registerFunction

  • 自版本: 2.0.0

注册一个可以使用 TFCALL 命令调用的新函数。

//name and callback mandatory
//object with optional arguments
redis.registerFunction(
  'foo', //name
  function(client, args) {}, //callback
  {
    description: 'The description',
    flags: [redis.functionFlags.NO_WRITES, redis.functionFlags.ALLOW_OOM]
  } // optional arguments
);

redis.registerAsyncFunction

  • 自版本: 2.0.0

注册一个可以使用 TFCALLASYNC 命令调用的新异步函数。

redis.registerAsyncFunction(
  'foo', //Function name
  function(client, args){}, //callback
  {
    description: 'description',
    flags: [redis.functionFlags.NO_WRITES, redis.functionFlags.ALLOW_OOM]
  } //optional arguments
);

redis.registerKeySpaceTrigger

  • 自版本: 2.0.0

注册一个键空间通知触发器,该触发器将在每次触发键空间通知时运行。

redis.registerKeySpaceTrigger(
  'foo', // trigger name
  'keys:*', //key prefix
  function(client, data) {}, //callback
  {
    description: 'description'
    onTriggerFired: function(client, data){}
  } //optional arguments
)

redis.registerStreamTrigger

  • 自版本: 2.0.0

注册一个流触发器,该触发器将在每次将数据添加到流时调用。

redis.registerStreamTrigger(
  'foo', //trigger name
  'stream:*', //prefix
  function(client, data){},//callback
  {
    description: 'Description'
    window: 1,
    isStreamTrimmed: false 
  } //optional arguments
)

redis.registerClusterFunction

  • 自版本: 2.0.0

注册一个可以使用 async_client.runOnKey()async_client.runOnShards() 调用的集群函数。

redis.registerClusterFunction(
  'foo', //name
  async function(client, ...args){} //callback
)

redis.config

  • 自版本: 2.0.0
redis-cli -x RG.FUNCTION LOAD UPGRADE CONFIG '{"example_config": "example_config_value"}' < main.js
var configExample = redis.config.example_config;

客户端对象

用于在 Redis 上执行操作的客户端对象。

client.call

  • 自版本: 2.0.0

在 Redis 上运行命令。该命令在当前的 Redis 实例上执行。

client.call(
  '',
  ...args
)

client.callRaw

  • 自版本: 2.0.0

在 Redis 上运行命令,但不执行对结果的 UTF8 解码。该命令在当前的 Redis 实例上执行。

client.callRaw(
  '',
  ...args
)

client.callAsync

  • 自版本: 2.0.0

在 Redis 上调用命令。允许 Redis 阻止执行(如 blpop 命令)并异步返回结果。返回一个 promise 对象,该对象将在命令调用完成后得到解决。

client.callAsync(
  '',
  ...args
)

client.callAsyncRaw

  • 自版本: 2.0.0

在 Redis 上调用命令。允许 Redis 阻止执行(如 blpop 命令)并异步返回结果。返回一个 promise 对象,该对象将在命令调用完成后得到解决。该命令在当前的 Redis 实例上执行。

client.callRaw(
  '',
  ...args
)

client.isBlockAllowed

  • 自版本: 2.0.0

如果允许从函数回调返回 promise,则返回 true。如果允许并且返回了 promise,Redis 将等待 promise 被履行,然后才会返回函数结果。

client.isBlockAllowed(); // True / False

client.executeAsync

  • 自版本: 2.0.0

异步执行给定的函数。返回一个 promise,该 promise 将在 promise 被解决/拒绝时履行。

client.executeAsync(
  async function(client){}
)

异步客户端对象

用于在 Redis 上执行后台操作的后台客户端对象。此客户端被赋予作为 JS 协程运行的任何后台任务。

async_client.block

  • 自版本: 2.0.0

阻止 Redis 进行命令调用。在给定函数内部执行的所有命令都被认为是原子的,并将被 Multi/Exec 包裹并发送到副本/AOF。

async_client.block(
  function(client){}
)

async_client.runOnKey

  • 自版本: 2.0.0

在给定的键上运行远程函数。如果键位于我们当前运行的分片上,则远程函数将立即运行。否则,远程函数将在远程分片上运行。返回一个 promise,该 promise 将在调用完成时履行。请注意,远程函数必须返回 json 可序列化的结果,以便我们可以将结果序列化回原始分片。

请注意,远程函数只能执行读取操作,不允许写入。

async_client.runOnKey(
  'key1', // key
  'foo', // function name
  ...args
)

async_client.runOnShards

  • 自版本: 2.0.0

在所有分片上运行远程函数。返回一个 promise,该 promise 将在所有分片上的调用完成时履行。

结果是一个包含 2 个元素的数组,第一个是所有结果的另一个数组。第二个是调用过程中发生的所有错误的数组。请注意,远程函数必须返回 json 可序列化的结果,以便我们可以将结果序列化回原始分片。

请注意,远程函数只能执行读取操作,不允许写入。

async_client.runOnShards(
  'foo', //name
  ...args //arguments
)
对此页面评分
返回顶部 ↑