-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathferrum.conf.example
More file actions
78 lines (66 loc) · 3.44 KB
/
Copy pathferrum.conf.example
File metadata and controls
78 lines (66 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# ====================================================================
# Example FerrumKV configuration file
# ====================================================================
#
# Usage:
# cargo run --release -- --config ferrum.conf
#
# All directives are optional. Command-line flags (e.g. --addr, --maxclients)
# always override anything set here. Environment variables FERRUM_LOG and
# RUST_LOG override the `loglevel` directive below.
# --------------------------------------------------------------------
# Host and port the server binds to. If both are given they are combined
# into "host:port"; if one is missing the default (127.0.0.1:6380) fills in.
bind 127.0.0.1
port 6380
# Close idle client connections after this many seconds (0 = disabled).
timeout 300
# Upper bound on concurrent client connections (0 = unlimited).
maxclients 10000
# Log verbosity: off | error | warn | info | debug | trace
loglevel info
# ---- Persistence (AOF) ---------------------------------------------
# Enable Append-Only File persistence. When turned on, `appendfilename`
# is the path to the log file. Defaults to `appendonly.aof` if omitted.
# appendonly yes
# appendfilename "appendonly.aof"
# fsync policy: always | everysec | no
# appendfsync everysec
# ---- Memory management --------------------------------------------
# Soft memory ceiling for the live dataset. Accepts plain bytes or
# SI-like suffixes: 512b, 64kb, 256mb, 1gb. 0 disables the cap.
# maxmemory 0
# Eviction policy applied when `maxmemory` is exceeded. One of:
# noeviction — refuse writes (default)
# allkeys-lru — approximate LRU over every key
# volatile-lru — approximate LRU, keys with TTL only
# allkeys-lfu — approximate LFU (Morris counter) over every key
# volatile-lfu — approximate LFU, keys with TTL only
# allkeys-random — random key
# volatile-random — random key with TTL
# volatile-ttl — key with the shortest remaining TTL
# allkeys-sieve — SIEVE (NSDI'24): FIFO queue + hand, simpler than LRU
# volatile-sieve — SIEVE restricted to keys with TTL
# allkeys-sieves — SIEVE-S: FerrumKV's TTL-aware SIEVE (force-demotes near-expiry keys)
# volatile-sieves — SIEVE-S restricted to keys with TTL
# allkeys-ahe — Adaptive Hybrid Eviction (recency + frequency + TTL)
# volatile-ahe — AHE restricted to keys with TTL
# maxmemory-policy noeviction
# How many random candidates to inspect per eviction round (Redis default: 5).
# maxmemory-samples 5
# ---- Security ------------------------------------------------------
# Optional connection password (`requirepass`). When set, every new
# connection must issue `AUTH <password>` before any other command runs;
# unauthenticated commands are rejected with `-NOAUTH`. A wrong password
# returns `-WRONGPASS`. Mirrors Redis' `requirepass` semantics.
# requirepass "change-me"
# ---- Runtime -------------------------------------------------------
# Number of tokio worker threads driving accept/read/write loops.
# 0 (or unset) means "one per logical CPU", which is the right default
# for most deployments. Bump it higher only if you are pinning other
# workloads to specific cores and want to cap FerrumKV's share.
# io-threads 0
# ---- Web dashboard -------------------------------------------------
# Address the built-in web dashboard listens on. Enabled by default on
# 127.0.0.1:6381. Set to "off" to disable the dashboard entirely.
# dashboard-addr 127.0.0.1:6381