Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Replication, Sentinel and Cluster in Redis: Failover, Hash Slots, Hash Tags and CROSSSLOT
Because Redis replication is asynchronous, a write acknowledged to the client can be lost in a failover; WAIT does not prevent this, it only makes it visible. With real output: a lost order number, failover time with Sentinel and StackExchange.Redis, 16384 hash slots in Cluster, MOVED, CROSSSLOT and hash tags, Functions that must be loaded on every primary, node-local keyspace notifications, Redis 8.4's atomic slot migration and how Valkey 9 differs.
Running Redis in Production: ACL, TLS, Dangerous Commands, Latency Diagnosis, OpenTelemetry and Testcontainers
In production every application should connect to Redis with its own ACL user that may use only the commands, keys and channels it needs; a user without FLUSHALL, KEYS and EVAL is the first defence against Lua vulnerabilities and a leaked password. With real output: what ACL LOG reveals, moving to Functions, TLS, reading SLOWLOG and the StackExchange.Redis timeout message, OpenTelemetry spans and integration testing with Testcontainers.
From Redis 7 to Redis 8.x and Valkey 9: What's New, Where They Diverge and Migrating StackExchange.Redis 2→3
Neither Redis 7.4 nor Valkey 9 can open an RDB file written by Redis 8; Redis and Valkey share 7.2 as their common ground, and upgrades are one-way. With real measurements: RDB and replication compatibility, a summary of Redis 8.0–8.10, a compatibility table built by asking both servers with COMMAND DOCS, old APIs that are compile errors in StackExchange.Redis 3.x, and a version upgrade plan.