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

@nocobase/auth

AuthManager
Kimlik Doğrulama
BaseAuth

@nocobase/cache

CacheManager
Önbellek

@nocobase/cli

NocoBase CLI
Genel Ortam Değişkenleri

@nocobase/client

Uygulama
Eklenti

@nocobase/database

koleksiyon
Alan

interfaces

BaseInterface
Filtre Operatörleri

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Depo

shared

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

@nocobase/data-source-manager

DataSourceManager
Veri Kaynağı (Soyut)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Veri Kaynağı Yöneticisi
FlowContext
FlowEngine
FlowModel
İş Akışı Kaynağı

@nocobase/logger

Logger

@nocobase/server

AppCommand
Uygulama
AuditManager
Bağlam
Taşıma
Eklenti

@nocobase/sdk

Kimlik Doğrulama (Auth)
Depolama
Previous PageBaseAuth
Next PageÖnbellek
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#CacheManager

#Genel Bakış

CacheManager, node-cache-manager üzerine kuruludur ve NocoBase için önbellek (cache) modülü yönetimini sağlar. Dahili önbellek türleri şunlardır:

  • memory - node-cache-manager tarafından varsayılan olarak sağlanan lru-cache
  • redis - node-cache-manager-redis-yet tarafından desteklenir

API aracılığıyla daha fazla tür kaydedilebilir ve genişletilebilir.

#Kavramlar

  • Store: Bir önbellekleme yöntemini tanımlar. Bu tanım, önbellek oluşturmak için bir fabrika yöntemi ve diğer ilgili yapılandırmaları içerir. Her önbellekleme yönteminin, kayıt sırasında sağlanan benzersiz bir tanımlayıcısı vardır. Dahili iki önbellekleme yönteminin benzersiz tanımlayıcıları memory ve redis'tir.

  • Store Fabrika Yöntemi: node-cache-manager ve ilgili eklenti paketleri tarafından önbellek oluşturmak için sağlanan bir yöntemdir. Örneğin, node-cache-manager tarafından varsayılan olarak sağlanan 'memory' ve node-cache-manager-redis-yet tarafından sağlanan redisStore gibi. Bu, node-cache-manager'ın caching yönteminin ilk parametresine karşılık gelir.

  • Cache: NocoBase tarafından kapsüllenmiş, önbelleği kullanmak için ilgili yöntemleri sağlayan bir sınıftır. Önbelleği fiilen kullanırken, bir Cache örneği üzerinde işlem yaparsınız. Her Cache örneğinin, farklı modülleri ayırt etmek için bir ad alanı olarak kullanılabilecek benzersiz bir tanımlayıcısı vardır.

#Sınıf Yöntemleri

#constructor()

#İmza

  • constructor(options?: CacheManagerOptions)

#Türler

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;
};

#Detaylar

#CacheManagerOptions
ÖzellikTürAçıklama
defaultStorestringVarsayılan önbellek türü için benzersiz tanımlayıcı.
storesRecord<string, StoreOptions>Önbellek türlerini kaydeder. Anahtar, önbellek türü için benzersiz tanımlayıcıdır ve değer, önbellek türünün kayıt yöntemini ve genel yapılandırmasını içeren bir nesnedir.
node-cache-manager'da önbellek oluşturma yöntemi await caching(store, config) şeklindedir. Burada sağlanacak nesne StoreOptions olacaktır.
#StoreOptions
ÖzellikTürAçıklama
storememory | FactoryStore<Store, any>caching yönteminin ilk parametresine karşılık gelen store fabrika yöntemi.
close(store: Store) => Promise<void>İsteğe bağlıdır. Redis gibi bağlantı gerektiren ara yazılımlar için, bağlantıyı kapatmak üzere bir geri çağırma yöntemi sağlanmalıdır. Giriş parametresi, store fabrika yönteminin döndürdüğü nesnedir.
[key: string]anycaching yönteminin ikinci parametresine karşılık gelen diğer genel store yapılandırmaları.

#Varsayılan 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();
      },
    },
  },
};

options parametresi, varsayılan seçeneklerle birleştirilecektir. Varsayılan seçeneklerde zaten bulunan özellikler atlanabilir. Örneğin:

const cacheManager = new CacheManager({
  stores: {
    defaultStore: 'redis',
    redis: {
      // redisStore is already provided in the default options, so you only need to provide the redisStore configuration.
      url: 'redis://localhost:6379',
    },
  },
});

#registerStore()

Yeni bir önbellekleme yöntemi kaydeder. Örneğin:

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

cacheManager.registerStore({
  // store için benzersiz tanımlayıcı
  name: 'redis',
  // store oluşturmak için fabrika yöntemi
  store: redisStore,
  // store bağlantısını kapat
  close: async (redis: RedisStore) => {
    await redis.client.quit();
  },
  // genel yapılandırma
  url: 'xxx',
});

#İmza

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

#createCache()

Bir önbellek oluşturur. Örneğin:

await cacheManager.createCache({
  name: 'default', // önbellek için benzersiz tanımlayıcı
  store: 'memory', // store için benzersiz tanımlayıcı
  prefix: 'mycache', // önbellek anahtarlarına otomatik olarak 'mycache:' öneki ekler, isteğe bağlı
  // diğer store yapılandırmaları, özel yapılandırmalar genel store yapılandırmasıyla birleştirilecektir
  max: 2000,
});

#İmza

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

#Detaylar

#options
ÖzellikTürAçıklama
namestringÖnbellek için benzersiz tanımlayıcı.
storestringStore için benzersiz tanımlayıcı.
prefixstringİsteğe bağlı, önbellek anahtarı öneki.
[key: string]anyStore ile ilgili diğer özel yapılandırma öğeleri.

store atlanırsa, defaultStore kullanılacaktır. Bu durumda, önbellekleme yöntemi sistemin varsayılan önbellekleme yöntemine göre değişecektir.

Özel yapılandırma olmadığında, genel yapılandırma tarafından oluşturulan ve mevcut önbellekleme yöntemi tarafından paylaşılan varsayılan önbellek alanı döndürülür. Anahtar çakışmalarını önlemek için bir prefix eklemeniz önerilir.

// Varsayılan önbelleği genel yapılandırma ile kullanın
await cacheManager.createCache({ name: 'default', prefix: 'mycache' });
#Cache

Cache bölümüne bakın

#getCache()

İlgili önbelleği alır.

cacheManager.getCache('default');

#İmza

  • getCache(name: string): Cache

#flushAll()

Tüm önbellekleri sıfırlar.

await cacheManager.flushAll();

#close()

Tüm önbellek ara yazılımı bağlantılarını kapatır.

await cacheManager.close();