修改本页
Redis

Redis release cycle

Redis is system software, and a type of system software that holds user data, so it is among the most critical pieces of a software stack.

For this reason our release cycle tries hard to make sure that a stable release is only released when it reaches a sufficiently high level of stability, even at the cost of a slower release cycle.

A given version of Redis can be at three different levels of stability:

Unstable tree

The unstable version of Redis is always located in the unstable branch in the Redis Github Repository.

This is the source tree where most of the new features are developed and is not considered to be production ready: it may contain critical bugs, not entirely ready features, and may be unstable.

However, we try hard to make sure that even the unstable branch is usable most of the time in a development environment without major issues.

Forked, Frozen, Release candidate tree

When a new version of Redis starts to be planned, the unstable branch (or sometimes the currently stable branch) is forked into a new branch that has the name of the target release.

For instance, when Redis 2.6 was released as stable, the unstable branch was forked into the 2.8 branch.

This new branch can be at three different levels of stability: development, frozen, and release candidate.

Stable tree

At some point, when a given Redis release is in the Release Candidate state for enough time, we observe that the frequency at which critical bugs are signaled starts to decrease, to the point that for a few weeks we don't have any serious bugs reported.

When this happens, the release is marked as stable.

Version numbers

Stable releases follow the usual major.minor.patch versioning schema, with the following special rules:

Support

Older versions are not supported as we try very hard to make the Redis API mostly backward compatible. Upgrading to newer versions is usually trivial.

For example, if the current stable release is 2.6.x, we accept bug reports and provide support for the previous stable release (2.4.x), but not for older ones such as 2.2.x.

When 2.8 becomes the current stable release, the 2.6.x will be the oldest supported release.