Today, we upgraded redis from 2.0.4 to 2.2.1, and both the server and development environment were upgraded. Let's take a look at redis update notes.
Redis 2.2 Release Notes
Migrating from 2.0 to 2.2 migration from 2.0 to 2.2
Redis 2.0 is mostly a strict subset of 2.2.
Some return value changed in edgecases, basicaly it is very unlikely that you will experience any problemupgrading your 2.0 instances to 2.2, as 2.2 can work as a drop in replacementfor 2.0.
--------- Changelog ---------
What's new in redis 2.2.1 ==========================
Redis 2.2.1 is a bugfix release. changelog:
* Fixed an spop crash. When using spop in a multi/exec block there was a problem introduced in the latest release when fixing an spop replication/AOF related bug.
What's new in redis 2.2.0 final ================================
Redis 2.2.0 final is both a bug fix and minor enhancement release:
* Spop is now replicated correctly in aof and between SS slaves. * config set/get for all the special encoding parameters of sets, lists, hashes. * Now brpoplpush will reply with single null bulk on timeout. * specifying port 0 in redis. conf will tell redis to don't listen on TCP socket. * propagate key eviction to slaves and aof, similarly to expires.
What's new in redis 2.1.10 (2.2 release candidate 4) ========================================================== ================
Redis 2.2 RC4 is a bug fix and minor enhancement release:
* Fixed timeout error in replication where master took a big time to bgsave. * introduced explicit Ping between master and slave, to reliably detect when the link is down, even if the socket remains apparently connected. * fixed compilation on FreeBSD. * removed a small portability issue in redis-benchmark.
What's new in redis 2.1.10 (2.2 Release Candidate 3) ========================================================== ================
Redis 2.2 RC3 is a bug fix and minor enhancements release:
* Solaris fixes * fixes and improvements for redis-benchmark * New Info Field with memory allocation details * New info fields with info about clients Max input/output buffer * replication: keys fixed in slaves * different Default thresholds for hash type memory saving encodings
What's new in redis 2.1.10 (2.2 Release Candidate 2) ========================================================== ================
Redis 2.2 RC2 is exactly like RC1 with the following minor changes:
* Added evicted keys counter separated from expired keys. * overflow detection in incr family functions.
Enjoy, Salvatore
What's new in redis 2.1.9 (2.2 release candidate 1) ========================================================== ==============
This is the first release candidate of redis 2.2, in our experience theserver is very stable, but in the latest weeks we rewrote part of the internalsin order to use a lot less memory while the saving child process is using MINGA bgrewriteaof or a bgsave, So Handle with care for a couple of weeks.
Oh, and I 've some very good news: the majority of apps can work if you simply replace 2.2 in your old 2.0 Environment. I can't think of any breakage.
What's new in redis 2.2 compared to the 2.0 version? ========================================================== ================
* Specially encoded data types, small lists and sets can now use up to an order of magn1_less memory. * VM partial rewrite for code cleaness and memory usage. * change to the implementation of the top level dictionary for better memory efficienty. * redis-CLI is hugely improved: tab completion, inline help (thanks to TJ holowaychuk), raw output, rewritten using the new hiredis C library. * networki Ng internals rewritten for efficiency. you can configure CT lrange and similar commands to be at least 10 times faster. * Most read only commands are now copy-on-write friendly, this means that redis will use little memory when a saving child is active and the parent process is mostly stressed by read queries. * Non Blocking replication even from the point of view of the slave, with writable able Behavior About what to do when the link is disconnected. you can select if serving old data or replying with an error. * check-and-set (CAS) transactions with the new watch command. * Now write operations work against keys with an expire set! Imagine the possibilities. * New maxmemory eviction policies. it is possible to select among LRU, farest TTL expire, and other algorithms, and if when the memory limit is reached only keys with an expire set or all the keys shoshould be expired. * setbit/getbit/setrange/getrange/strlen. now your strings are your arrays! * Syslog support (thanks to Jonah H. harris) * Unix domain socket support. * New list related functions linsert, lpushx, rpushx (thanks to Robey pointer) * brpoplpush (thanks to michelmartens and Damian Janowski) * much more interesting informations in the info output. * sorted sets are now less memory hungry. * Non Blocking loading. rdb/AOF file on startup, with progress information in the info output. * Now redis has a clean, powerful, supported C Library: hiredis. * Code layout completely new, the 2.0.x huge redis. c file is now splitted in your parts. * redis-benchmark rewritten to be faster and in order to use hiredis as well. * ability to rename or disable commands from the config file. * endless other CPU optimizations and bugs fixed.
Credits: Where not specified the implementation and design are done by Salvatore sanfilippo and Pieter noordhuis. thanks to VMware for making all this possible. also extends thanks to all the other contributors and the amazing community we have.
Cheers, Salvatore
Current usage experience:
1. Compilation and installation have become different
Make & make install auto-copy is very different from the original make
2. Enhanced redis-cli