logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Обзор API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Кэш

@nocobase/cli

NocoBase CLI
Глобальные переменные окружения

@nocobase/client

Приложение
Плагин

@nocobase/database

Коллекция
Поле

interfaces

BaseInterface
Операторы фильтрации

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Репозиторий

shared

create-options
destroy-options
find-one
find-options
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (абстрактный)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Менеджер источников данных
Контекст потока
FlowEngine
Модель потока
Ресурс рабочего процесса

@nocobase/logger

Логгер

@nocobase/server

AppCommand
Приложение
AuditManager
Контекст
Миграция
Плагин

@nocobase/sdk

Auth
Storage
Previous PageBaseAuth
Next PageКэш
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#CacheManager

#Обзор

CacheManager основан на node-cache-manager и предоставляет NocoBase функциональность управления модулями кеширования. Встроенные типы кеша:

  • memory – lru-cache, предоставляемый по умолчанию node-cache-manager.
  • redis – поддерживается node-cache-manager-redis-yet.

Дополнительные типы можно зарегистрировать и расширить через API.

#Основные понятия

  • Store: Определяет способ кеширования, включающий фабричный метод для создания кешей и другие связанные конфигурации. Каждый способ кеширования имеет уникальный идентификатор, который предоставляется при регистрации. Уникальные идентификаторы для двух встроенных способов кеширования — это memory и redis.

  • Фабричный метод Store: Метод, предоставляемый node-cache-manager и связанными пакетами расширений для создания кешей. Например, 'memory', предоставляемый по умолчанию node-cache-manager, или redisStore, предоставляемый node-cache-manager-redis-yet. Это соответствует первому параметру метода caching в node-cache-manager.

  • Cache: Класс, инкапсулированный NocoBase, который предоставляет методы для работы с кешем. При фактическом использовании кеша вы работаете с экземпляром Cache. Каждый экземпляр Cache имеет уникальный идентификатор, который можно использовать в качестве пространства имён для различения различных модулей.

#Методы класса

#constructor()

#Сигнатура

  • constructor(options?: CacheManagerOptions)

#Типы

export type CacheManagerOptions = Partial<{
  defaultStore: string;
  stores: {
    [storeType: string]: StoreOptions;
  };
}>;

type StoreOptions = {
  store?: 'memory' | FactoryStore<Store, any>;
  close?: (store: Store) => Promise<void>;
  // глобальная конфигурация
  [key: string]: any;
};

#Подробности

#CacheManagerOptions
СвойствоТипОписание
defaultStorestringУникальный идентификатор для типа кеша по умолчанию.
storesRecord<string, StoreOptions>Регистрирует типы кеша. Ключом является уникальный идентификатор типа кеша, а значением — объект, содержащий метод регистрации и глобальную конфигурацию для этого типа кеша.
В node-cache-manager метод для создания кеша — это await caching(store, config). Здесь необходимо предоставить объект StoreOptions.
#StoreOptions
СвойствоТипОписание
storememory | FactoryStore<Store, any>Фабричный метод store, соответствующий первому параметру caching.
close(store: Store) => Promise<void>Необязательно. Для промежуточного ПО, такого как Redis, требующего соединения, необходимо предоставить метод обратного вызова для закрытия соединения. Входным параметром является объект, возвращаемый фабричным методом store.
[key: string]anyДругие глобальные конфигурации store, соответствующие второму параметру caching.

#Параметры options по умолчанию

import { redisStore, RedisStore } from 'cache-manager-redis-yet';

const defaultOptions: CacheManagerOptions = {
  defaultStore: 'memory',
  stores: {
    memory: {
      store: 'memory',
      // глобальная конфигурация
      max: 2000,
    },
    redis: {
      store: redisStore,
      close: async (redis: RedisStore) => {
        await redis.client.quit();
      },
    },
  },
};

Параметр options будет объединён с параметрами по умолчанию. Свойства, уже присутствующие в параметрах по умолчанию, можно опустить. Например:

const cacheManager = new CacheManager({
  stores: {
    defaultStore: 'redis',
    redis: {
      // redisStore уже предоставлен в параметрах по умолчанию, поэтому достаточно указать только конфигурацию redisStore.
      url: 'redis://localhost:6379',
    },
  },
});

#registerStore()

Регистрирует новый способ кеширования. Например:

import { redisStore } from 'cache-manager-redis-yet';

cacheManager.registerStore({
  // уникальный идентификатор store
  name: 'redis',
  // фабричный метод для создания store
  store: redisStore,
  // закрытие соединения store
  close: async (redis: RedisStore) => {
    await redis.client.quit();
  },
  // глобальная конфигурация
  url: 'xxx',
});

#Сигнатура

  • registerStore(options: { name: string } & StoreOptions)

#createCache()

Создаёт кеш. Например:

await cacheManager.createCache({
  name: 'default', // уникальный идентификатор кеша
  store: 'memory', // уникальный идентификатор store
  prefix: 'mycache', // автоматически добавляет префикс 'mycache:' к ключам кеша, необязательно
  // другие конфигурации store, пользовательские настройки будут объединены с глобальной конфигурацией store
  max: 2000,
});

#Сигнатура

  • createCache(options: { name: string; prefix?: string; store?: string; [key: string]: any }): Promise<Cache>

#Подробности

#options
СвойствоТипОписание
namestringУникальный идентификатор кеша.
storestringУникальный идентификатор store.
prefixstringНеобязательно, префикс ключа кеша.
[key: string]anyДругие пользовательские параметры конфигурации, связанные со store.

Если store опущен, будет использоваться defaultStore. В этом случае способ кеширования будет меняться в соответствии со способом кеширования по умолчанию в системе.

При отсутствии пользовательских конфигураций возвращается пространство кеша по умолчанию, созданное глобальной конфигурацией и используемое текущим способом кеширования. Рекомендуется добавить prefix во избежание конфликтов ключей.

// Использование кеша по умолчанию с глобальной конфигурацией
await cacheManager.createCache({ name: 'default', prefix: 'mycache' });
#Cache

См. Cache

#getCache()

Получает соответствующий кеш.

cacheManager.getCache('default');

#Сигнатура

  • getCache(name: string): Cache

#flushAll()

Сбрасывает все кеши.

await cacheManager.flushAll();

#close()

Закрывает все соединения промежуточного ПО кеширования.

await cacheManager.close();