Page 10 of 14: older articles, tutorials, and videos.

I implement the allkeys-random eviction policy for my Go Redis clone by sampling a bounded set of keys and deleting until memory is freed. I show why Redis-style eviction samples only a handful of keys instead of…

I add real memory management to my Go Redis clone: every key now reports its approximate footprint, and the server refuses writes once it hits a configured max-memory limit. I calculate key size from the string header…

I implement Redis-style database transactions in my Go Redis clone, adding MULTI, EXEC, and DISCARD command handlers and a transaction queue that holds commands until execution. I first demonstrate how official Redis…

I build the BGREWRITEAOF command for my Go Redis clone so the append-only file stops replaying outdated SET commands and keeps only the latest value for each key. I run the rewrite in a background goroutine, take a…

EXPIRE and TTL need each key to carry its own expiry timestamp, so I change the store from a map of strings to a map of *Key structs holding the value and an expiry time.Time, then fix every handler that breaks. I add…

I implement AUTH and password protection for my Go Redis clone by adding a requirepass directive, tracking authentication state per client, and blocking unauthenticated commands. I add requirepass to the config parser…

I add SHA-256 checksum protection to the RDB save path in my Go Redis clone so a snapshot is only considered successfully written when the in-memory buffer and on-disk file hashes match. I encode the database to a…

I implement the DBSIZE and FLUSHDB commands in my Go Redis clone, and I show why the obvious way to flush a database is the wrong one. For DBSIZE I take a read lock and return the length of the store map, while FLUSHDB…

I implement the SAVE and BGSAVE commands in my Go Redis clone, after tightening the RDB layer: a read lock in saveRDB so snapshots don't race with writes, an os.O_TRUNC flag so every save overwrites stale data, os.Open…

I fix the concurrency bug that crashed my Go Redis server the moment a client disconnected, then implement the DEL, EXISTS, and KEYS commands. Connections are now accepted in an infinite loop, handed to a goroutine…

I implement RDB data persistence for my Go Redis clone by snapshotting the in-memory store to disk and reloading it on server start. I add per-snapshot trackers that count changed keys, use time.Ticker goroutines to…

I implement append-only file persistence for my Redis clone in Go, showing how Redis can durably replay SET commands from disk instead of relying only on in-memory state. I explain the two Redis persistence approaches…


Dude, you’re at the bottom of my landing page.
Just book a call already if you’re that interested.
You scrolled all the way here.