RocksDB - Time To Live
TTL (Time-to-Live) là một tính năng trong RocksDB cho phép bạn đặt thời gian sống cho một cặp key-value. Khi giá trị TTL hết hạn, RocksDB tự động xóa key-value tương ứng khỏi cơ sở dữ liệu.
Dưới đây là một ví dụ về việc sử dụng TTL trong RocksDB bằng Java:
import org.rocksdb.*;
public class RocksDBTTLExample {
public static void main(String[] args) {
RocksDB.loadLibrary();
try (final Options options = new Options().setCreateIfMissing(true);
final RocksDB db = RocksDB.open(options, "/path/to/database")) {
final ColumnFamilyHandle cfHandle = db.getDefaultColumnFamily();
byte[] key = "myKey".getBytes();
byte[] value = "myValue".getBytes();
int ttl = 3600; // TTL in seconds
db.put(cfHandle, key, value, ttl);
} catch (RocksDBException e) {
// Xử lý lỗi khi ghi dữ liệu không thành công
}
}
}
Trong ví dụ trên, chúng ta sử dụng put()
để ghi một cặp key-value vào RocksDB với một giá trị TTL (Time-to-Live) được đặt là 3600 giây (1 giờ). Khi giá trị TTL hết hạn, RocksDB tự động xóa key-value tương ứng.
Đối với việc sử dụng TTL trong RocksDB bằng C++, dưới đây là một ví dụ:
#include "rocksdb/db.h"
int main() {
rocksdb::DB* db;
rocksdb::Options options;
options.create_if_missing = true;
rocksdb::Status status = rocksdb::DB::Open(options, "/path/to/database", &db);
if (status.ok()) {
rocksdb::WriteOptions writeOptions;
rocksdb::Slice key = "myKey";
rocksdb::Slice value = "myValue";
int ttl = 3600; // TTL in seconds
rocksdb::Status writeStatus = db->Put(writeOptions, key, value, rocksdb::WriteTTL(ttl));
if (!writeStatus.ok()) {
// Xử lý lỗi khi ghi dữ liệu không thành công
}
} else {
// Xử lý lỗi khi mở cơ sở dữ liệu không thành công
}
delete db;
return 0;
}
Trong ví dụ trên, chúng ta sử dụng Put()
để ghi một cặp key-value vào RocksDB với một giá trị TTL (Time-to-Live) được đặt là 3600 giây (1 giờ). Khi giá trị TTL hết hạn, RocksDB tự động xóa key-value tương ứng.
Đó là một ví dụ về việc sử dụng TTL trong RocksDB bằng Java và C++.
No Comments