Skip to content

CacheClient API

Constructor

typescript
new CacheClient(config: ClientConfig)

Tham số

ParamKiểuMặc địnhMô tả
config.hoststring"127.0.0.1"Hostname server
config.portnumber3000Port server
config.retryAttemptsnumber3Số lần thử lại khi lỗi
config.retryDelaynumber1000Delay giữa các lần thử (ms)
config.timeoutnumber5000Timeout request (ms)

Phương thức

connect(): Promise<void>

Kết nối đến cache server.

typescript
import { CacheClient } from "distributed-cache";

const client = new CacheClient({
  host: "127.0.0.1",
  port: 3000,
});

await client.connect();
console.log("Đã kết nối đến cache server");

disconnect(): Promise<void>

Ngắt kết nối khỏi server.

typescript
await client.disconnect();

get(key: string): Promise<Value | null>

Lấy value từ cache.

typescript
const user = await client.get("user:123");
if (user) {
  console.log(user); // { name: "John", email: "john@example.com" }
} else {
  console.log("Cache miss");
}

set(key: string, value: Value, ttl?: number): Promise<void>

Lưu value vào cache.

typescript
// Lưu không có TTL
await client.set("user:123", { name: "John" });

// Lưu với TTL (5 giây)
await client.set("temp:data", "value", 5000);

del(key: string): Promise<boolean>

Xóa key khỏi cache.

typescript
const deleted = await client.del("user:123");
console.log(deleted); // true nếu tồn tại, false nếu không

ping(): Promise<boolean>

Kiểm tra server có phản hồi không.

typescript
const alive = await client.ping();
if (alive) {
  console.log("Server đang phản hồi");
}

isClientConnected(): boolean

Kiểm tra client có đang kết nối không.

typescript
if (client.isClientConnected()) {
  // an toàn để gửi request
}

Interfaces

ClientConfig

typescript
interface ClientConfig {
  host: string; // mặc định: "127.0.0.1"
  port: number; // mặc định: 3000
  retryAttempts: number; // mặc định: 3
  retryDelay: number; // mặc định: 1000
  timeout: number; // mặc định: 5000
}

Ví dụ

typescript
import { CacheClient } from "distributed-cache";

const client = new CacheClient({
  host: "127.0.0.1",
  port: 3000,
  retryAttempts: 3,
  retryDelay: 1000,
  timeout: 5000,
});

await client.connect();

// Lưu user session
await client.set("session:abc", { userId: 123, role: "admin" }, 3600000);

// Lấy session
const session = await client.get("session:abc");
console.log(session); // { userId: 123, role: "admin" }

// Xóa session khi logout
await client.del("session:abc");

await client.disconnect();

Released under the MIT License.