Documentation
¶
Index ¶
- func Clear() error
- func Exist(key string) bool
- func Get[K store.Compare](key string) *K
- func New(config ...Config) error
- func Put(key string, value store.Compare, maxAge ...uint64) error
- func Remove(key string) bool
- func Set(key string, value store.Compare, maxAge ...uint64) error
- func Size() uint64
- type App
- type Config
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Clear ¶
func Clear() error
Clear menghapus semua nilai yang tersimpan dalam store dan database. Fungsi ini mengosongkan map data dan, jika ada, memanggil fungsi untuk menghapus semua data dari database.
Mengembalikan: - error: Kesalahan jika terjadi selama proses penghapusan data dari database.
func Exist ¶
Exist memeriksa apakah nilai dengan key yang diberikan ada dalam store. Fungsi ini mengembalikan true jika key ditemukan, dan false jika tidak.
Parameter:
- key (string): Key unik yang digunakan untuk memeriksa keberadaan nilai dalam store.
Mengembalikan: - bool: True jika nilai dengan key ditemukan; False jika tidak ditemukan.
func Get ¶
Get mengambil nilai dari store berdasarkan key yang diberikan. Fungsi ini mengembalikan pointer ke nilai yang ditemukan. Jika tidak ada nilai yang cocok dengan key, akan mengembalikan nil.
Parameter:
- key (string): Key unik yang digunakan untuk mencari nilai dalam store.
Tipe Parameter:
- K (store.Compare): Tipe data yang diharapkan sesuai dengan interface Compare, seperti integer, float, string, atau tipe apapun yang diizinkan.
Mengembalikan:
- *K: Pointer ke nilai yang diambil dari store. Jika nilai tidak ditemukan, akan mengembalikan nil.
func New ¶
New menginisialisasi aplikasi dengan konfigurasi yang diberikan. Jika konfigurasi tidak disediakan, aplikasi akan menggunakan nilai default. Mengatur data cache dan memulai waktu aplikasi. Jika Path untuk database diberikan, aplikasi akan menginisialisasi database dan memuat data dari database ke dalam cache.
func Put ¶
Put menggantikan atau membuat nilai baru ke dalam store dengan key yang diberikan. Jika key sudah ada, nilai yang lama akan digantikan dengan nilai baru. Fungsi ini juga dapat menerima parameter opsional untuk menentukan maxAge.
Parameter:
- key (string): Key unik yang digunakan untuk mengidentifikasi nilai dalam store.
- value (store.Compare): Nilai yang akan disimpan. Harus memiliki tipe data yang sesuai dengan interface Compare, seperti integer, float, string, atau tipe apapun yang diizinkan.
- maxAge (opsional) (uint64): Waktu maksimal dalam milidetik selama nilai akan disimpan. Jika tidak disertakan, nilai ini akan disimpan tanpa batasan waktu.
Mengembalikan: - error: Kesalahan jika terjadi selama proses penggantian atau penyimpanan data.
func Remove ¶
Remove menghapus nilai yang terkait dengan key yang diberikan dari store. Fungsi ini juga menghapus data dari database jika ada.
Parameter:
- key (string): Key unik yang digunakan untuk menghapus nilai dalam store.
Mengembalikan: - bool: True jika key berhasil dihapus; False jika key tidak ditemukan.
func Set ¶
Set menyimpan nilai ke dalam store dengan key yang diberikan. Fungsi ini juga dapat menerima parameter opsional untuk menentukan maxAge. Nilai yang disimpan harus sesuai dengan tipe yang didefinisikan oleh interface store.Compare.
Parameter:
- key (string): Key unik yang digunakan untuk mengidentifikasi nilai dalam store.
- value (store.Compare): Nilai yang akan disimpan. Harus memiliki tipe data yang sesuai dengan interface Compare, seperti integer, float, string, atau tipe apapun yang diizinkan.
- maxAge (opsional) (uint64): Waktu maksimal dalam milidetik selama nilai akan disimpan. Jika tidak disertakan, nilai ini akan diabaikan.
Mengembalikan: - error: Kesalahan jika terjadi selama penyimpanan data.
func Size ¶ added in v1.0.0
func Size() uint64
TotalSize menghitung ukuran total dari semua key dan nilai yang disimpan dalam map app.data. Ukuran dihitung sebagai jumlah byte dari panjang string key dan panjang nilai (store) yang disimpan. Fungsi ini efisien dan tidak menggunakan banyak memori tambahan.
Mengembalikan: - uint64: Total ukuran data (key dan value) dalam byte.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
Struktur `App` digunakan untuk mengelola seluruh aplikasi, termasuk konfigurasi, database, dan data cache.
Field-field:
- mu: Mutex untuk memastikan operasi thread-safe pada aplikasi, mencegah race condition.
- start: Waktu start aplikasi dalam format Unix timestamp (uint64).
- config: Objek konfigurasi aplikasi (Config) yang menyimpan pengaturan aplikasi.
- db: Pointer ke objek database yang mengelola koneksi dan operasi database.
- data: Cache data dalam bentuk map, yang menggunakan string sebagai key dan store.Store sebagai value.
func (*App) InitializeDB ¶
InitializeDB menginisialisasi koneksi database SQLite dan menyimpannya dalam aplikasi. Fungsi ini menetapkan nama tabel yang digunakan, membuka koneksi ke database, dan menyimpan objek database ke dalam field aplikasi.
Langkah-langkah:
- Membuat objek database baru dengan nama tabel yang ditentukan.
- Membuka koneksi ke SQLite menggunakan jalur database dari konfigurasi aplikasi.
- Menyimpan koneksi database ke dalam aplikasi dengan penguncian untuk memastikan thread safety.
Mengembalikan:
- error: Kesalahan jika koneksi database gagal dibuka.
type Config ¶
type Config struct {
// Path ke file database. Jika kosong, data akan hilang setelah proses selesai.
// File seperti "database.db" akan menyimpan data untuk mengantisipasi jika
// program terhenti, sehingga data yang telah dicache dapat dimuat ulang.
Path string
// Memori maksimal yang diperbolehkan digunakan (dalam bit).
// 8.388.608 bit = 1 MB.
// default: 8589934592 bit (1 GB).
MAX_MEM uint
// Memori minimal yang akan dialokasikan (dalam bit).
// 8.388.608 bit = 1 MB.
// default: 8388608 bit (1 MB).
MIN_MEM_ALLOCATION uint64
// Jika true, data yang ditambahkan paling awal akan dihapus
// ketika batas memori maksimal tercapai.
// default : false
EvictOldestOnMaxMem bool
// Timeout untuk pemeriksaan entri yang kedaluwarsa (dalam milidetik).
// Ini menentukan interval waktu antara setiap pemeriksaan data dalam cache.
// Default: 10000 (10 detik).
TimeoutCheck uint64
}
Config menyimpan konfigurasi utama aplikasi yang berhubungan dengan database dan penggunaan memori.
Field-field:
- Path: Lokasi file database di sistem. Jika path tidak ditentukan, aplikasi akan menggunakan database sementara yang datanya hilang setelah proses berakhir.
- MAX_MEM: Batas memori maksimum yang diperbolehkan untuk aplikasi, dinyatakan dalam bit. Default adalah 8.589.934.592 bit (1 GB).
- MIN_MEM_ALLOCATION: Jumlah memori minimum yang dialokasikan, dinyatakan dalam bit. Default adalah 8.388.608 bit (1 MB).