Ich lerne gerade, wie das mit Redis und Persistenz funktioniert (Ich habe mir [1] durchgelesen):
Es gibt da zwei grundsätzliche Möglichkeiten:
- Regelmässige Dumps machen lassen. Das lässt sich recht flexibel einstellen. Es ist auf der anderen Seite aber bei größeren Datenbanken vielleicht nicht so praktikabel, immer einen Full Dump durchzuführen.
- Append-Only-Files schreiben lassen. Dass sind dann Transaktionsprotokolle, die dann jedes Update auf dem Datenträger speichern. Dabei kann man auswählen, wie häufig der FSync stattfindet. Default-Einstellung ist 1 x pro Sekunde. Dass soll immer noch sehr schnell gehen. Wer es noch sicherer haben will, der kann das nach jedem einzelnen Write machen lassen. Das ist dann sicher wie klassische Datenbanken (postgres/mysql), aber auch die langsamste Variante.
---
Allerdings habe ich jetzt das Problem, sobald ich AOF einschalte, ist mein Forum (nodebb) - dass Redis als Datenspeicher benutzt - kaputt. Ich habe die Umstellung auf AOF wie folgt erledigt:
- Forum heruntergefahren (nodebb stop)
- Redis heruntergefahren (systemctl stop redis-server)
- AOF aktiviert (appendonly -> yes)
- Redis hochgefahren (systemctl start redis-server)
- Forum hochgefahren (nodebb start)
In /var/log/redis/redis-server.log sind keine Fehlermeldungen oder Warnungen.
Hat jemand eine Idee?
Umgebung: Debian Bookworm/LXC
Das ist meine redis.conf (Im Wesentlichen die Debian-Vorgabekonfiguration):
Code: Alles auswählen
bind 127.0.0.1 -::1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /run/redis/redis-server.pid
loglevel notice
logfile /var/log/redis/redis-server.log
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
# CHANGED - save dump hourly if at least one record has been written.
save 3600 1
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir /var/lib/redis
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-diskless-sync-max-replicas 0
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
requirepass ldsfjkldsfjdslkfls
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
# CHANGED
appendonly yes
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
aof-timestamp-enabled no
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-listpack-entries 512
hash-max-listpack-value 64
list-max-listpack-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-listpack-entries 128
zset-max-listpack-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes