2.0.0 • Published 10 months ago

@level-two/redis v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

LevelTwo - Redis

A message broker and cache extension for LevelTwo. Refer to the Worker API for function definitions.

Usage

import { createLevelTwoRedis } from "@level-two/redis";

// Integrates redis pubsub & cache into a LevelTwo instance
const levelTwo = createLevelTwoRedis({
  clientOptions: { url: "redis://localhost:6379" },
});

// Create a worker for getting cacheable customer objects
const worker = levelTwo.createWorker("customer", async (ids, earlyWrite) => {
  const rows = await mysql.query(
    "SELECT id, name FROM customers WHERE id IN (?)",
    [ids]
  );

  rows.forEach((row) => earlyWrite(row.id, row));
});

// Service method for getting a single customer
export async function getCustomer(id: string): Promise<Customer> {
  return await worker.get(id);
}

// Service method for getting a list of customers
export async function getCustomerList(ids: string[]): Promise<Customer[]> {
  return await worker.getMulti(ids);
}

Settings

redis

Existing redis client that should be used in this extension

clientOptions

Configuration options for creating a new redis client

broadcastChannel

Broadcast channel name for sending/receiving actions. Defaults to "level-two-broadcast"

cachePrefix

String prefix to use in front of each cache key

cacheDisabled

Indicates if cache should be disabled or not. Defaults to enabled

cacheDefaults

LevelTwo worker cache defaults

2.0.0

10 months ago

1.2.0

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago