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

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Variabel Lingkungan Global

@nocobase/client

Aplikasi
plugin

@nocobase/database

Koleksi
Bidang

interfaces

BaseInterface
Operator Filter

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repositori

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstrak)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Manajer Sumber Data
FlowContext
FlowEngine
FlowModel
Sumber Daya Alur Kerja

@nocobase/logger

Logger

@nocobase/server

AppCommand
Aplikasi
AuditManager
Konteks
Migrasi
Plugin

@nocobase/sdk

Auth
Penyimpanan
Previous PageBaseAuth
Next PageCache
TIP

Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris

#CacheManager

#Gambaran Umum

CacheManager didasarkan pada node-cache-manager dan menyediakan fungsionalitas manajemen modul Cache untuk NocoBase. Tipe Cache bawaan adalah:

  • memory - lru-cache yang disediakan secara default oleh node-cache-manager
  • redis - didukung oleh node-cache-manager-redis-yet untuk fungsionalitas terkait

Tipe lainnya dapat didaftarkan dan diperluas melalui API.

#Konsep

  • Store: Mendefinisikan metode caching, termasuk metode pabrik (factory method) untuk membuat cache dan konfigurasi terkait lainnya. Setiap metode caching memiliki pengenal unik yang disediakan saat pendaftaran. Pengenal unik untuk dua metode caching bawaan adalah memory dan redis.

  • Metode Pabrik Store: Metode yang disediakan oleh node-cache-manager dan paket ekstensi terkait untuk membuat cache. Contohnya, 'memory' yang disediakan secara default oleh node-cache-manager, dan redisStore yang disediakan oleh node-cache-manager-redis-yet. Ini sesuai dengan parameter pertama dari metode caching di node-cache-manager.

  • Cache: Sebuah kelas yang dienkapsulasi oleh NocoBase, menyediakan metode terkait untuk menggunakan cache. Saat benar-benar menggunakan cache, Anda beroperasi pada sebuah instance Cache. Setiap instance Cache memiliki pengenal unik, yang dapat digunakan sebagai namespace untuk membedakan modul yang berbeda.

#Metode Kelas

#constructor()

#Tanda Tangan (Signature)

  • constructor(options?: CacheManagerOptions)

#Tipe

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

type StoreOptions = {
  store?: 'memory' | FactoryStore<Store, any>;
  close?: (store: Store) => Promise<void>;
  // global config
  [key: string]: any;
};

#Detail

#CacheManagerOptions
PropertiTipeDeskripsi
defaultStorestringPengenal unik untuk tipe Cache default.
storesRecord<string, StoreOptions>Mendaftarkan tipe Cache. Kunci adalah pengenal unik untuk tipe Cache, dan nilainya adalah objek yang berisi metode pendaftaran tipe Cache dan konfigurasi global.
Di node-cache-manager, metode untuk membuat cache adalah await caching(store, config). Objek yang akan disediakan di sini adalah StoreOptions.
#StoreOptions
PropertiTipeDeskripsi
storememory | FactoryStore<Store, any>Metode pabrik store, sesuai dengan parameter pertama caching.
close(store: Store) => Promise<void>Opsional. Untuk middleware seperti Redis yang memerlukan koneksi, metode callback untuk menutup koneksi harus disediakan. Parameter input adalah objek yang dikembalikan oleh metode pabrik store.
[key: string]anyKonfigurasi global store lainnya, sesuai dengan parameter kedua caching.

#Opsi Default options

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

const defaultOptions: CacheManagerOptions = {
  defaultStore: 'memory',
  stores: {
    memory: {
      store: 'memory',
      // global config
      max: 2000,
    },
    redis: {
      store: redisStore,
      close: async (redis: RedisStore) => {
        await redis.client.quit();
      },
    },
  },
};

Parameter options akan digabungkan dengan opsi default. Properti yang sudah ada dalam opsi default dapat dihilangkan, contohnya:

const cacheManager = new CacheManager({
  stores: {
    defaultStore: 'redis',
    redis: {
      // redisStore sudah disediakan dalam opsi default, jadi Anda hanya perlu menyediakan konfigurasi redisStore.
      url: 'redis://localhost:6379',
    },
  },
});

#registerStore()

Mendaftarkan metode caching baru. Contoh:

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

cacheManager.registerStore({
  // pengenal unik untuk store
  name: 'redis',
  // metode pabrik untuk membuat store
  store: redisStore,
  // menutup koneksi store
  close: async (redis: RedisStore) => {
    await redis.client.quit();
  },
  // konfigurasi global
  url: 'xxx',
});

#Tanda Tangan (Signature)

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

#createCache()

Membuat cache. Contoh:

await cacheManager.createCache({
  name: 'default', // pengenal unik untuk cache
  store: 'memory', // pengenal unik untuk store
  prefix: 'mycache', // secara otomatis menambahkan prefiks 'mycache:' ke kunci cache, opsional
  // konfigurasi store lainnya, konfigurasi kustom akan digabungkan dengan konfigurasi global store
  max: 2000,
});

#Tanda Tangan (Signature)

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

#Detail

#options
PropertiTipeDeskripsi
namestringPengenal unik untuk cache.
storestringPengenal unik untuk store.
prefixstringOpsional, prefiks kunci cache.
[key: string]anyItem konfigurasi kustom lainnya yang terkait dengan store.

Jika store dihilangkan, defaultStore akan digunakan. Dalam kasus ini, metode caching akan berubah sesuai dengan metode caching default sistem.

Ketika tidak ada konfigurasi kustom, akan dikembalikan ruang cache default yang dibuat oleh konfigurasi global dan dibagikan oleh metode caching saat ini. Disarankan untuk menambahkan prefix untuk menghindari konflik kunci.

// Menggunakan cache default, dengan konfigurasi global
await cacheManager.createCache({ name: 'default', prefix: 'mycache' });
#Cache

Lihat Cache

#getCache()

Mendapatkan cache yang sesuai.

cacheManager.getCache('default');

#Tanda Tangan (Signature)

  • getCache(name: string): Cache

#flushAll()

Mengatur ulang semua cache.

await cacheManager.flushAll();

#close()

Menutup semua koneksi middleware cache.

await cacheManager.close();