Latest in branch 2.8
2.8.24
Released 18 Dec 2015
(10 years ago)
SoftwareRedis
Version2.8
Status
End of life
Initial release2.8.0
22 Nov 2013
(12 years ago)
Latest release2.8.24
18 Dec 2015
(10 years ago)
Support statusNo
Source codehttps://github.com/redis/redis/tree/2.8.24
Documentationhttps://redis.io/docs/
Downloadhttps://download.redis.io/releases/
Redis 2.8 ReleasesView full list

What Is New in Redis 2.8

Redis 2.8 focuses on operational robustness and introspection, introducing partial replication, background AOF rewrites, and new commands for monitoring and key iteration.

Category Key Changes
New Features Partial resynchronization (PSYNC), Keyspace notifications, Latency monitor, Slow log, SCAN family of commands
Improvements Background AOF rewriting, Better memory efficiency, Enhanced replication stability, Client pause command
New Commands PSYNC, CLIENT PAUSE, COMMAND, SCAN/SSCAN/HSCAN/ZSCAN, DEBUG LATENCY
Bug Fixes Numerous fixes for replication, persistence, and memory handling issues present in earlier versions.

How does partial resynchronization improve replication?

PSYNC allows a replica to resume synchronization without a full resync after a disconnect. This saves network bandwidth and time, especially for datasets with high write rates. In practice, this means replicas catch up faster and put less load on the master. The master maintains a replication backlog to feed changes to reconnecting replicas.

What can you do with keyspace notifications?

Clients can subscribe to Pub/Sub channels to receive events affecting the keyspace, like key deletions or expirations. This is useful for building cache invalidation systems or auditing tools. You enable it via CONFIG SET notify-keyspace-events. This matters because it turns Redis into an active event source, not just a passive store.

Why are the SCAN commands better than KEYS?

SCAN iterates the key space incrementally without blocking the server, unlike the KEYS command which can cause latency spikes. It uses a cursor-based approach and guarantees to return all elements if you complete the iteration. This is critical for production environments where you need to inspect large databases without affecting operations.

How does background AOF rewriting work now?

The AOF rewrite process no longer needs to create a temporary file that doubles disk usage. Instead, it rewrites in place while the parent process continues appending to the old AOF file. This reduces disk space pressure during rewrites and is less likely to fail on full disks. The rewrite is still triggered by BGREWRITEAOF or automatic configuration.

What tools help diagnose latency issues?

The latency monitoring framework lets you track and log slow operations. Use CONFIG SET latency-monitor-threshold to set a threshold in milliseconds. The LATENCY command family then helps you visualize latency spikes and their causes. This is a built-in way to identify performance bottlenecks without external tools.

FAQ

When should I use PSYNC over a full SYNC?
PSYNC is used automatically when a replica reconnects and the master still has the required backlog. If the replica is too far behind or the backlog is insufficient, a full SYNC will fall back. Ensure repl-backlog-size is configured appropriately for your write volume.

Are keyspace notifications persistent?
No, they are Pub/Sub messages, so clients must be connected at the time the event occurs to receive it. If you need durability, consider writing events to a stream or list within your Lua script logic.

Does SCAN return keys in a consistent order?
No, the iteration order can change across calls due to resizing of the underlying hash table. The command only guarantees that all keys present at the start of the iteration will be returned by the end if no changes are made.

What's the purpose of CLIENT PAUSE?
CLIENT PAUSE stops processing commands from all clients for a specified time (milliseconds). This is useful for controlled failover scenarios, giving replicas time to catch up with the master before switching roles.

Is the slow log similar to MySQL's slow query log?
Yes, it logs commands that exceed a specified execution time. Configure the threshold with slowlog-log-slower-than and retrieve entries with SLOWLOG GET. This helps identify inefficient commands or patterns, like complex LUA scripts.

Releases In Branch 2.8

VersionRelease date
2.8.2418 Dec 2015
(10 years ago)
2.8.2315 Oct 2015
(10 years ago)
2.8.2208 Sep 2015
(10 years ago)
2.8.2104 Jun 2015
(11 years ago)
2.8.2005 May 2015
(11 years ago)
2.8.1916 Dec 2014
(11 years ago)
2.8.1804 Dec 2014
(11 years ago)
2.8.1719 Sep 2014
(11 years ago)
2.8.1616 Sep 2014
(11 years ago)
2.8.1512 Sep 2014
(11 years ago)
2.8.1401 Sep 2014
(11 years ago)
2.8.1314 Jul 2014
(11 years ago)
2.8.1223 Jun 2014
(11 years ago)
2.8.1111 Jun 2014
(11 years ago)
2.8.1005 Jun 2014
(12 years ago)
2.8.922 Apr 2014
(12 years ago)
2.8.825 Mar 2014
(12 years ago)
2.8.705 Mar 2014
(12 years ago)
2.8.613 Feb 2014
(12 years ago)
2.8.504 Feb 2014
(12 years ago)
2.8.413 Jan 2014
(12 years ago)
2.8.311 Dec 2013
(12 years ago)
2.8.202 Dec 2013
(12 years ago)
2.8.125 Nov 2013
(12 years ago)
2.8.022 Nov 2013
(12 years ago)
2.8.0-rc606 Nov 2013
(12 years ago)
2.8.0-rc509 Oct 2013
(12 years ago)
2.8.0-rc430 Aug 2013
(12 years ago)
2.8.0-rc319 Aug 2013
(12 years ago)
2.8.0-rc230 Jul 2013
(12 years ago)
2.8.0-rc118 Jul 2013
(12 years ago)