객체 내장 객체

ObjectLru캐시

LruCache(Least Recent Used Cache)는 LRU 캐시를 유지하는 데 사용되는 클래스입니다. 일정 개수의 값을 저장하고 컨테이너의 크기를 유지할 수 있습니다. 새로운 데이터가 들어올 때 컨테이너가 크기 제한에 도달하지 않은 경우 새 데이터를 컨테이너에 직접 추가할 수 있습니다. 컨테이너가 가득 차면 컨테이너는 최근에 가장 적게 사용된 데이터를 제거합니다.

다음과 같은 방법으로 사용할 수 있습니다.

1 2
const util = require('util') const c = new util.LruCache(10, 100) // create a LruCache instance with size 10 and timeout 100ms

그 중 set()은 키-값 쌍을 설정하는 인터페이스입니다.

1
LruCache.set(String name, Value value);

name 매개변수는 설정할 키 값을 지정하고, value 매개변수는 설정할 값을 지정합니다.

LruCacheget메서드는 콜백 함수를 사용하여 캐시된 데이터를 업데이트할 수 있습니다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var c = new util.LruCache(10, 1000); // create a LruCache instance with size 10 and timeout 1000ms function get_data(name) { // return data from backend // ... var data = { 'name': name, 'value': Math.random() }; console.log('update data: ' + JSON.stringify(data)); // output infomation to console return data; } console.log(c.get('a', get_data)); console.log(c.get('a', get_data));

결과:

1 2 3
update data: {"name":"a","value":0.4019124971556616} {"name":"a","value":0.4019124971556616} // updater will be called to update cache data when cache is empty {"name":"a","value":0.4019124971556616} // updater will not be called when cache is not empty

특히 LruCache를 사용하는 경우 개발자는 다음 모범 사례를 따르는 것이 좋습니다.

  • LruCache를 사용하면 백엔드 데이터 처리 중 특정 시점을 새로운 시점으로 사용하고 만료 시간을 설정하여 애플리케이션 성능을 최적화할 수 있습니다.
  • 해당 시나리오에 따라 비즈니스 결정을 분석합니다. 예를 들어, 더 자주 업데이트되는 데이터는 더 짧은 만료 시간으로 구성되어야 하며, 덜 자주 업데이트되는 캐시된 데이터는 너무 짧은 만료 시간을 설정할 필요가 없습니다.
  • 다양한 사용 시나리오에서는 다양한 데이터 액세스 모드를 고려하고 적절한 LruCache 클래스 인스턴스를 사용하세요.

상속관계

건설자

LruCache

LruCache 객체 생성자

1 2
new LruCache(Integer size, Integer timeout = 0);

호출 매개변수:

  • size: 정수, 최대 캐시 크기
  • timeout: 정수, 요소 만료 시간, 단위는 ms이며, 0보다 작거나 같으면 만료되지 않으며 기본값은 0입니다.

정적 속성

defaultMaxListeners

정수, 기본 전역 최대 리스너 수

1
static Integer LruCache.defaultMaxListeners;

구성원 속성

size

정수, 컨테이너에 있는 값의 개수를 쿼리합니다.

1
readonly Integer LruCache.size;

timeout

정수, 쿼리 및 컨테이너 요소의 만료 시간을 설정합니다. 단위는 ms이며, 0보다 작거나 같으면 만료되지 않습니다.

1
Integer LruCache.timeout;

onexpire

함수, 쿼리 및 바인드 데이터 시간 초과 이벤트. on("expire", func);

1
Function LruCache.onexpire;

멤버 함수

clear

컨테이너 데이터 지우기

1
LruCache.clear();

has

컨테이너에 지정된 키 값을 가진 데이터가 존재하는지 확인

1
Boolean LruCache.has(String name);

호출 매개변수:

  • name: 문자열, 확인할 키 값을 지정합니다.

결과 반환:

  • Boolean, 키 값이 존재하는지 여부를 반환합니다.

get

지정된 키 값의 값을 쿼리합니다.

1
Value LruCache.get(String name);

호출 매개변수:

  • name: 문자열, 쿼리할 키 값을 지정합니다.

결과 반환:

  • Value, 키 값에 해당하는 값을 반환하고, 존재하지 않으면 정의되지 않음을 반환합니다.

지정된 키 값의 값을 쿼리하고, 존재하지 않거나 만료된 경우 콜백 함수를 호출하여 데이터를 업데이트합니다.

1 2
Value LruCache.get(String name, Function updater);

호출 매개변수:

  • name: 문자열, 쿼리할 키 값을 지정합니다.
  • updater: 기능, 업데이트 기능을 지정합니다

결과 반환:

  • Value, 키 값에 해당하는 값을 반환합니다.

set

키 값 데이터를 설정합니다. 키 값이 없으면 새 데이터를 삽입합니다.

1 2
LruCache.set(String name, Value value);

호출 매개변수:

  • name: 문자열, 설정할 키 값을 지정합니다.
  • value: 값, 설정할 데이터를 지정합니다.

키 값 데이터를 설정하고, 해당 키 값이 없으면 새로운 데이터를 삽입하세요.

1
LruCache.set(Object map);

호출 매개변수:

  • map: 객체, 설정할 키-값 데이터 사전을 지정합니다.

remove

지정된 키의 모든 값 삭제

1
LruCache.remove(String name);

호출 매개변수:

  • name: 문자열, 삭제할 키 값을 지정합니다.

isEmpty

컨테이너가 비어 있는지 확인

1
Boolean LruCache.isEmpty();

결과 반환:

  • Boolean, 컨테이너에 값이 없으면 true를 반환합니다.

on

이벤트 핸들러를 객체에 바인딩

1 2
Object LruCache.on(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체에 바인딩

1
Object LruCache.on(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

addListener

이벤트 핸들러를 객체에 바인딩

1 2
Object LruCache.addListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체에 바인딩

1
Object LruCache.addListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

prependListener

이벤트 핸들러를 객체의 원점에 바인딩

1 2
Object LruCache.prependListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체의 원점에 바인딩

1
Object LruCache.prependListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

once

일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.

1 2
Object LruCache.once(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

일회성 이벤트 핸들러를 객체에 바인딩합니다. 일회성 핸들러는 한 번만 트리거됩니다.

1
Object LruCache.once(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

prependOnceListener

이벤트 핸들러를 객체의 원점에 바인딩

1 2
Object LruCache.prependOnceListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

이벤트 핸들러를 객체의 원점에 바인딩

1
Object LruCache.prependOnceListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름이 이벤트 이름으로 사용되고 속성 값이 이벤트 처리 함수로 사용됩니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

off

객체 처리 대기열에서 기능 할당 취소

1 2
Object LruCache.off(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열의 모든 기능 취소

1
Object LruCache.off(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열에서 기능 할당 취소

1
Object LruCache.off(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

removeListener

객체 처리 대기열에서 기능 할당 취소

1 2
Object LruCache.removeListener(String ev, Function func);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.
  • func: 함수, 이벤트 처리 함수를 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열의 모든 기능 취소

1
Object LruCache.removeListener(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체 처리 대기열에서 기능 할당 취소

1
Object LruCache.removeListener(Object map);

호출 매개변수:

  • map: Object, 이벤트 매핑 관계를 지정하며, 객체 속성 이름을 이벤트 이름으로 사용하고, 해당 속성의 값을 이벤트 처리 함수로 사용합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

removeAllListeners

객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.

1
Object LruCache.removeAllListeners(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

객체의 처리 대기열에서 모든 이벤트에 대한 모든 리스너를 취소합니다. 이벤트가 지정된 경우 지정된 이벤트에 대한 모든 리스너를 제거합니다.

1
Object LruCache.removeAllListeners(Array evs = []);

호출 매개변수:

  • evs: 배열, 이벤트 이름 지정

결과 반환:

  • Object, 체인 호출을 용이하게 하기 위해 이벤트 객체 자체를 반환합니다.

setMaxListeners

호환성만을 위한 리스너 수의 기본 제한

1
LruCache.setMaxListeners(Integer n);

호출 매개변수:

  • n: 정수, 이벤트 수를 지정합니다.

getMaxListeners

호환성만을 위해 기본 제한 수의 리스너를 가져옵니다.

1
Integer LruCache.getMaxListeners();

결과 반환:

  • Integer, 기본 제한 수량을 반환합니다.

listeners

객체의 지정된 이벤트에 대한 리스너 배열을 쿼리합니다.

1
Array LruCache.listeners(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Array, 지정된 이벤트에 대한 리스너 배열을 반환합니다.

listenerCount

객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.

1
Integer LruCache.listenerCount(String ev);

호출 매개변수:

  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.

객체의 지정된 이벤트에 대한 리스너 수를 쿼리합니다.

1 2
Integer LruCache.listenerCount(Value o, String ev);

호출 매개변수:

  • o: 값, 쿼리 개체를 지정합니다.
  • ev: 문자열, 이벤트 이름을 지정합니다.

결과 반환:

  • Integer, 지정된 이벤트에 대한 리스너 수를 반환합니다.

eventNames

쿼리 리스너 이벤트 이름

1
Array LruCache.eventNames();

결과 반환:

  • Array, 이벤트 이름의 배열을 반환합니다.

emit

이벤트를 적극적으로 트리거

1 2
Boolean LruCache.emit(String ev, ...args);

호출 매개변수:

  • ev: 문자열, 이벤트 이름
  • args: ..., 이벤트 매개변수가 이벤트 처리 함수에 전달됩니다.

결과 반환:

  • Boolean, 이벤트 트리거 상태를 반환하고, 응답 이벤트가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

toString

객체의 문자열 표현을 반환하며 일반적으로 "[Native Object]"를 반환하며 객체 자체의 특성에 따라 다시 구현될 수 있습니다.

1
String LruCache.toString();

결과 반환:

  • String, 객체의 문자열 표현을 반환합니다.

toJSON

객체의 JSON 형식 표현을 반환하며 일반적으로 객체에 의해 정의된 읽을 수 있는 속성 컬렉션을 반환합니다.

1
Value LruCache.toJSON(String key = "");

호출 매개변수:

  • key: 문자열, 사용되지 않음

결과 반환:

  • Value, 직렬화 가능한 JSON을 포함하는 값을 반환합니다.