00-RELEASENOTES 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612
  1. Redis 2.8 release notes
  2. =======================
  3. ** IMPORTANT ** Check the 'Migrating from 2.6 to 2.8' section at the end of
  4. this file for information about what changed between 2.6 and
  5. 2.8 and how this may affect your application.
  6. --------------------------------------------------------------------------------
  7. Upgrade urgency levels:
  8. LOW: No need to upgrade unless there are new features you want to use.
  9. MODERATE: Program an upgrade of the server, but it's not urgent.
  10. HIGH: There is a critical bug that may affect a subset of users. Upgrade!
  11. CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
  12. --------------------------------------------------------------------------------
  13. --[ Redis 2.8.19 ] Release date: 16 Dec 2014
  14. # UPGRADE URGENCY: LOW for both Redis and Sentinel. This release mostly
  15. fixes small issues.
  16. 02d465c Don't log admin commands in MONITOR. (antirez)
  17. 4d8f426 List of commands flagged as admin commands modified. (antirez)
  18. e47e460 Lua cmsgpack lib updated to latest version. (antirez)
  19. 5509c14 Add symlink to redis-sentinel during make install (Rhommel Lamas)
  20. 7de1ef7 SORT: Don't sort Set elements if not needed. (antirez)
  21. e945a54 Fix zero-ordering SORT when called against lists (Matt Stancliff)
  22. d81c383 Update redis_init_script.tpl (Ben Dowling)
  23. dba57ea FIXED redis-benchmark's idle mode.With idle mode shouldn't create write event (zhanghailei)
  24. 888ea17 zipmap.c: update comments above (Sun He)
  25. 86ebc13 replaced // comments #2150 (Deepak Verma)
  26. 3d73f08 redis-benchmark AUTH command to be discarded after the first send #2150 (azure provisioned user)
  27. 76d53a6 sds.c: Correct two spelling mistakes in comments (Sun He)
  28. 4848cf9 sds.c/sdscatvprintf: set va_end to finish va_list cpy (Sun He)
  29. d2f584f sds.c: Correct some comments (Sun He)
  30. 2ed3f09 Update whatisdoing.sh (Serghei Iakovlev)
  31. 77b997d Include stropts only if __sun is defined. (antirez)
  32. d409371 Fix implicit declaration of ioctl on Solaris (Jan-Erik Rediger)
  33. 23b96c0 Silence _BSD_SOURCE warnings in glibc 2.20 and forward (Johan Bergström)
  34. a47a042 Mark whatisdoing.sh as deprecated in top-comment. (antirez)
  35. b5737d2 getting pid fixes (Serghei Iakovlev)
  36. a598e08 sparkline.c: AddSample skip Empty label (Sun He)
  37. 7d480ab sparkline.c: mov label-ini into the AddSample Function (Sun He)
  38. 2f3c860 Only ignore sigpipe in interactive mode (Jan-Erik Rediger)
  39. 0c211a1 Simplify lua_cmsgpack macro and fix build on old Linux distros. (antirez)
  40. --[ Redis 2.8.18 ] Release date: 4 Dec 2014
  41. # UPGRADE URGENCY: LOW for both Redis and Sentinel. This release mostly
  42. adds new features to Redis, and contains non critical
  43. fixes.
  44. * [FIX] Linenoise updated to be more VT100 compatible. (Salvatore Sanfilippo)
  45. * [FIX] A number of typos fixed inside comments. (Various authors)
  46. * [FIX] redis-cli no longer quits after long timeouts. (Matt Stancliff)
  47. * [FIX] Test framework improved to detect never terminating scripts, cleanup
  48. instances on crashes. (Salvatore Sanfilippo)
  49. * [FIX] PFCOUNT can be used on slaves now. (Salvatore Sanfilippo)
  50. * [FIX] ZSCAN no longer report very small scores as 0. (Matt Stancliff,
  51. Michael Grunder, Salvatore Sanfilippo)
  52. * [FIX] Don't show the ASCII logo if syslog is enabled. Redis is now
  53. an Enterprise Grade product. (Salvatore Sanfilippo)
  54. * [NEW] EXPERIMENTAL: Diskless replication, for more info check the doc at
  55. http://redis.io/topics/replication. (Salvatore Sanfilippo).
  56. * [NEW] Transparent Huge Pages detection and reporting in logs and
  57. LATENCY DOCTOR output. (Salvatore Sanfilippo)
  58. * [NEW] Many Lua scripting enhancements: Bitops API, cjson upgrade and tests,
  59. cmsgpack upgrade. (Matt Stancliff)
  60. * [NEW] Total and instantaneous Network bandwidth tracking in INFO.
  61. * [NEW] DEBUG POPULATE two args form implemented (old form still works).
  62. The second argument is the key prefix. Default is "key:" (Salvatore
  63. Sanfilippo)
  64. * [NEW] Check that tcp-backlog is matched by /proc/sys/net/core/somaxconn, and
  65. warn about it if not. (Salvatore Sanfilippo)
  66. --[ Redis 2.8.17 ] Release date: 19 Sep 2014
  67. # UPGRADE URGENCY: HIGH for Redis Sentinel.
  68. LOW for Redis Server (unmodified compared to 2.8.16).
  69. * [FIX] Resolved a memory leak in the hiredis library causing a memory leak
  70. in Redis Sentinel when a monitored instance or another Sentinel is
  71. unavailable. Every reconnection attempt will leak a small amount of
  72. memory, but in the long run the process can reach a considerable size.
  73. --[ Redis 2.8.16 ] Release date: 16 Sep 2014
  74. # UPGRADE URGENCY: HIGH for Redis if you are using 2.8.15 + AOF.
  75. LOW for Sentinel.
  76. * [FIX] The ability to load truncated AOF files introduced with Redis 2.8.15
  77. contains a bug fixed in this release: after loading the file was not
  78. truncated to the last valid command, so the new commands are appended
  79. after a non well formed command. This means that:
  80. 1) The first AOF rewrite triggered by the server will automatically
  81. fix the problem.
  82. 2) However, if the server is restarted before the rewrite, Redis may
  83. not be able to load the file and you need to manually fix it.
  84. In order to fix a corrupted file you should start the redis-check-aof
  85. utility WITHOUT the --fix option, just to check the offset where the
  86. corruption is found. Around the offset reported by the check utility
  87. you'll find, inside your AOF file, a command which is not complete
  88. according to the Redis protocol. Just remove this incomplete command
  89. leafing the file unaltered before and after the offending command,
  90. and restart the server.
  91. IMPORTANT #1: Redis 2.8.15 is the only stable version of Redis with
  92. this bug so probably no actual real-world problem happened since the
  93. problem is automatically fixed at the first automatic AOF rewrite.
  94. IMPORTANT #2: Before upgrading to Redis 2.8.16, if you are using Redis
  95. 2.8.15 with AOF enabled, make sure to trigger a manual AOF rewrite
  96. using the BGREWRITEAOF command.
  97. * [FIX] SAVE is no longer propagated to AOF / slaves.
  98. --[ Redis 2.8.15 ] Release date: 12 Sep 2014
  99. # UPGRADE URGENCY: LOW for Redis, HIGH for Sentinel.
  100. * [FIX] Sentinel critical bug fixed: the absolute majority was computed in a
  101. wrong way because of a programming error. Now the implementation does
  102. what the specification says and the majority to authorize a failover
  103. (that should not be confused with the ODOWN quorum) is the majority of
  104. *all* the Sentinels ever seen for a given master, regardless of their
  105. current state.
  106. * [FIX] GETRANGE test no longer fails for 32 bit builds (Matt Stancliff).
  107. * [FIX] Limit SCAN latency when the hash table is in an odd state (very few
  108. populted buckets because rehashing is in progress). (Xiaost and
  109. Salvatore Sanfilippo)
  110. * [NEW] Redis is now able to load truncated AOF files without requiring a
  111. redis-check-aof utility run. The default now is to load truncated
  112. (but apparently not corrupted) AOFs, you can change this in redis.conf.
  113. (Salvatore Sanfilippo).
  114. * [NEW] Sentinel: ability to announce itself with an arbitrary IP/port to work
  115. in the context of natted networks. However this is probably still
  116. not enough since there is no equivalent mechanism for slaves listed
  117. in the master INFO output. (Dara Kong and Salvatore Sanfilippo)
  118. --[ Redis 2.8.14 ] Release date: 1 Sep 2014
  119. # UPGRADE URGENCY: HIGH for Lua scripting users, the server could crash because
  120. of a bug introduced in Redis 2.8.10, otherwise LOW.
  121. LOW for Redis Sentinel.
  122. * [FIX] Don't prevent use of shared integers if maxmemory policy is non-LRU.
  123. (Salvatore Sanfilippo)
  124. * [FIX] Fail SYNC if background save child aborted due to a signal.
  125. (Yossi Gottlieb)
  126. * [FIX] Different small redis-cli fixes. (Dov Murik, Charsyam, cubicdaiya,
  127. Kashif Rasul, Jan-Erik Rediger, Matt Stancliff)
  128. * [FIX] AIX compilation fixes. (Siah Lyimo)
  129. * [FIX] A number of other smaller issues.
  130. * [FIX] Improved SIGINT handling (Matt Stancliff, Salvatore Sanfilippo)
  131. * [FIX] Use unsigned types in SDS header to raise limit to 4GB.
  132. (Matt Stancliff, Salvatore Sanfilippo)
  133. * [FIX] Handle signed/unsigned comparisons with more care around the code.
  134. (Salvatore Sanfilippo)
  135. * [FIX] Colorized test output fixed to don't change the background color.
  136. (Mariano Pérez Rodríguez)
  137. * [FIX] More Sentinel IPv6 fixes. (Eiichi Sato)
  138. * [FIX] Deny CLIENT command in scripts. (Matt Stancliff)
  139. * [FIX] Allow datasets with more than 2 billion of keys, initial work.
  140. * [FIX] Fix a Lua scripting crash by storing the length of the static
  141. argv when first allocated. (Paddy Byers)
  142. * [NEW] Pub/Sub PING. (Salvatore Sanfilippo)
  143. * [NEW] Much faster ZUNIONSTORE. (Kyle Hubert, Salvatore Sanfilippo)
  144. * [NEW] Faster ll2string() implementation. (Salvatore Sanfilippo)
  145. * [NEW] **WARNING, minor API change**: PUBSUB NUMSUB: return type modified
  146. to integer. (Matt Stancliff)
  147. * [NEW] redis-benchmark support for AUTH. (CharSyam)
  148. --[ Redis 2.8.13 ] Release date: 14 Jul 2014
  149. # UPGRADE URGENCY: LOW for Redis and Sentinel, this is a features enhancement
  150. release mostly. Since this release introduces the latency
  151. monitoring feature, Redis 2.8 users experiencing latency
  152. issues are strongly encouraged to upgrade.
  153. * [FIX] CLIENT KILL minor backward compatibility fixes. (Salvatore Sanfilippo)
  154. * [FIX] Enable HAVE_ATOMIC for PowerPC. (Matt Stancliff)
  155. * [FIX] More robust PSYNC and AOF rewrites tests. (Salvatore Sanfilippo)
  156. * [FIX] Solaris build fixed. (Matt Stancliff, Salvatore Sanfilippo)
  157. * [NEW] The new latency monitoring feature, as documented at
  158. http://redis.io/topics/latency-monitor (Salvatore Sanfilippo)
  159. * [NEW] The COMMAND command, exposing the Redis command table
  160. as an API. (Matt Stancliff)
  161. * [NEW] Update used memory with C11 __atomic. (Matt Stancliff)
  162. --[ Redis 2.8.12 ] Release date: 23 Jun 2014
  163. # UPGRADE URGENCY: HIGH for Redis, CRITICAL for Sentinel.
  164. # WARNING: This release contains a non backward compatible semantical change
  165. to Lua script that should affect an almost zero number of users.
  166. * [FIX / BREAKS BACKWARD COMPATIBILITY] Using SELECT inside Lua scripts no
  167. longer makes the selected DB to be set in the calling client.
  168. So Lua can still use SELECT, but the client calling the script will
  169. remain set to the original DB. Thix fixes an issue with Redis
  170. replication of Lua scripts that called SELECT without reverting the
  171. selected DB to the original one. (Salvatore Sanfilippo)
  172. * [FIX] Sentinel failover was instalbe if the master was detected as available
  173. during the failover (especially during manual failovers) because
  174. of an implementation error (lack of checking of
  175. SRI_PROMOTED flag). (Salvatore Sanfilippo)
  176. * [FIX] Cancel SHUTDOWN if initial AOF is being written. (Matt Stancliff)
  177. * [FIX] Sentinel: bind source address for outcoming connections. (Matt
  178. Stancliff).
  179. * [FIX] Less timing sensitive Sentinel tests. (Salvatore Sanfilippo).
  180. * [NEW] redis-cli --intrinsic-latency stopped with SIGINT still reports
  181. stats (Matt Stancliff)
  182. * [NEW] Sentinels broadcast an HELLO message ASAP after a failover in order to
  183. reach a consistent state faster (before it relied for periodic HELLO
  184. messages). (Salvatore Sanfilippo).
  185. * [NEW] Jemalloc updated to 3.6.0. (Salvatore Sanfilippo)
  186. * [NEW] CLIENT LIST speedup. (Salvatore Sanfilippo)
  187. * [NEW] CLIENT LIST new unique incremental ID to every client. (Salvatore
  188. Sanfilippo)
  189. * [NEW] ROLE command added. (Salvatore Sanfilippo)
  190. * [NEW] CLIENT KILL new form to kill by client type and ID (see doc at
  191. redis.io for more info). (Salvatore Sanfilippo)
  192. * [NEW] Sentinel now disconnects clients when instances are reconfigured
  193. (see http://redis.io/topics/sentinel-clients). (Salvatore Sanfilippo)
  194. * [NEW] Hiredis update to latest version. (Matt Stancliff)
  195. --[ Redis 2.8.11 ] Release date: 11 Jun 2014
  196. # UPGRADE URGENCY: HIGH if you use Lua scripting, LOW otherwise.
  197. * [FIX] A previous fix for Lua -> Redis numerical precision enhancement
  198. introduced a new problem. In Redis 2.8.10 commands called from Lua
  199. passing a string that "looks like" a very large number, may actually
  200. use as argument the string converted as a float. This bug is now
  201. fixed.
  202. * [FIX] Now commands other than *PUSH* adding elements to a list will be able
  203. to awake clients blocked in a blocking POP operation.
  204. * [FIX] Cygwin compilation fixes.
  205. --[ Redis 2.8.10 ] Release date: 5 Jun 2014
  206. # UPGRADE URGENCY: HIGH if you use min-slaves-to-write option.
  207. * [FIX] IMPORTANT! A min-slaves-to-write option active in a slave totally
  208. prevented the slave from acception the master stream of commands.
  209. This release includes testes for min-slaves-to-write, and a fix
  210. for this issue.
  211. * [FIX] Sometimes DEL returned 1 for already expired keys. Fixed.
  212. * [FIX] Fix test false positive because new osx 'leaks' output.
  213. * [FIX] PFCOUNT HLL cache invalidation fixed: no wrong value was reported
  214. but the cache was not used at all, leading to lower performances.
  215. * [FIX] Accept(2) multiple clients per readable-event invocation, and better
  216. processing of I/O while loading or busy running a timedout script.
  217. Basically now the LOADING / BUSY errors are reported at a decent
  218. speed.
  219. * [FIX] A softwaer watchdog crash fixed.
  220. * [FIX] Fixed a Lua -> Redis numerical precision loss.
  221. * [NEW] Lua scripting engine speed improved.
  222. * [NEW] Sentinel generates one new event for humans to understand better
  223. what is happening during a failover: +config-update-from.
  224. Also the time at which a failover will be re-attempted is logged.
  225. --[ Redis 2.8.9 ] Release date: 22 Apr 2014
  226. # UPGRADE URGENCY: LOW, only new features introduced, no bugs fixed.
  227. * [NEW] The HyperLogLog data structure. You can read more about it
  228. in this blog post. http://antirez.com/news/75
  229. * [NEW] The Sorted Set data type has now support for lexicographic range
  230. queries, check the new commands ZRANGEBYLEX, ZLEXCOUNT and
  231. ZREMRANGEBYLEX, which are documented at http://redis.io.
  232. --[ Redis 2.8.8 ] Release date: 25 Mar 2014
  233. # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. There is a potentially
  234. critical bug fix causing data loss in Redis but it requires
  235. a combination of disk full and the use of the
  236. SHUTDOWN command.
  237. * [FIX] Fixed data loss when SHUTDOWN was used with a disk full condition.
  238. * [FIX] Fixed a memory leak in the SORT syntax error processing.
  239. * [FIX] When Sentinel down-after-milliseconds parameter is modified at runtime
  240. now it gets propagated to all the slaves and sentinel instances
  241. of the master.
  242. * [FIX] `install_server.sh` script finally fixed.
  243. * [FIX] Different fixes to maxclients handling.
  244. * [NEW] Sentinels are now able to send update messages in a peer-to-peer
  245. fashion even if no Redis instances are available. Now the Sentinel
  246. liveness property that the most updated configuration in a given
  247. partition is propagated to all the Sentinels is extended to partitions
  248. without reachable instances.
  249. * [NEW] Sentinel safety properties are now ensured in a crash-recovery system
  250. model since some state is persisted on disk before replying to other
  251. nodes, and reloaded at startup.
  252. * [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to identify
  253. Sentinels using CLIENT LIST among other clients.
  254. * [NEW] Sentinel failure detection and reconnection code improved.
  255. * [NEW] Use all 24 bits (instead of 22) for the Redis objects LRU field.
  256. Note that the new LRU algorithm using eviction pools was not backported
  257. from unstable for safery / code maturity concerns.
  258. * [NEW] Majory speedup for the INFO command (it is now 6 times faster).
  259. * [NEW] More Sentinel unit tests.
  260. * [NEW] New command DEBUG ERROR returns the specified error. Example:
  261. DEBUG ERROR "LOADING database". This is handy to write Redis client
  262. libraries unit tests.
  263. * [NEW] redis-cli now supports multi-line editing via updated linenoise lib.
  264. Thanks to Matt Stancliff and Jan-Erik Rediger for the work done in the context
  265. of this release.
  266. --[ Redis 2.8.7 ] Release date: 5 Mar 2014
  267. # UPGRADE URGENCY: LOW for Redis, LOW for Sentinel. However this release adds
  268. new features so users may want to upgrade in order to
  269. exploit the new functionalities.
  270. * [FIX] Sometimes the absolute config file path was obtained in a wrong way.
  271. This happened when there was a "dir" directive inside the config file
  272. and at the same time the configuration file was given as a relative
  273. path to redis-server or redis-sentinel executables.
  274. * [FIX] redis-cli: Automatically enter --slave mode when SYNC or PSYNC are
  275. called during an interactive session.
  276. * [FIX] Sentinel "IDONTKNOW" error removed as it does not made sense with the
  277. new Sentinel design. This error was actually a fix for a design error
  278. in the first implementation of Sentinel.
  279. * [FIX] Sentinel: added a missing exit() call to abort after config file
  280. checks at startup. This error was introduced with an improvement in
  281. a previous 2.8 release.
  282. * [FIX] BITCOUNT: fixed unaligned access causing issues in sparc and other
  283. archs not capable of dealing with unaligned accesses. This also makes
  284. the code faster in archs where unaligned accesses are allowed.
  285. * [FIX] Sentinel: better nodes fail over start time desynchronization to avoid
  286. split-brain during the voting process needed to get authorization to
  287. fail over. This means the system is less likely to need to retry
  288. and will fail over faster. No changes in behavior / correctness.
  289. * [FIX] Force INFO used_memory_peak to match peak memory. This generated some
  290. confusion among users even if it was not an actual bug.
  291. * [NEW] Sentinel unit tests and framework. More tests needed and units must
  292. be improved in order to have less false positives, but it is a start
  293. and features a debugging console that is useful to fix tests or to
  294. inspect bugs causing tests failures.
  295. * [NEW] New Sentinel events: +/-monitor and +set used to monitor when an
  296. instance to monitor is added or removed, or when a configuration
  297. is modified via SENTINEL SET.
  298. * [NEW] Redis-cli updated to use SCAN instead of random sampling via
  299. RANDOMKEY in order to implement --bigkeys feature. Moreover the
  300. implementation now supports pipelining and reports more information
  301. at the end of the scan. Much faster, much better. A special thank
  302. you to Michael Grunder for this improvement.
  303. * [NEW] redis-cli now supports a new --intrinsic-latency mode that is able
  304. to meter the latency of a system due to kernel / hypervisor.
  305. How to use it is explained at http://redis.io/topics/latency.
  306. * [NEW] New command BITPOS: find first bit set or clear in a bitmap.
  307. * [NEW] CONFIG REWRITE calls are now logged.
  308. --[ Redis 2.8.6 ] Release date: 13 Feb 2014
  309. # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua
  310. scripts with EVALSHA and attached slaves and/or AOF
  311. persistence should consider upgrading ASAP.
  312. * [FIX] Fixed an critical EVALSHA script cache bug: scripts executed may not
  313. propagate to AOF / Slaves correctly under certain conditions.
  314. See issue #1549 at Github for more information.
  315. * [FIX] Fixed multiple bugs resulting into closing the link with master or slave
  316. during replication without good reasons. This will result in useless
  317. resynchronizations, or infinite loops where the replication link can't
  318. be established.
  319. * [FIX] Don't count the time needed to populate the buffers of clients waiting
  320. in MONITOR mode when populating the Slow Log entries.
  321. * [NEW] AOF write errors (like no space on device) no longer abort Redis if the
  322. fsync policy is none or every second. The database enters a read-only
  323. mode where every write is refused with an error. Normal operations are
  324. restored as soon as Redis is able to append again data to the AOF file.
  325. * [NEW] Sentinel now accepts SHUTDOWN command.
  326. --[ Redis 2.8.5 ] Release date: 4 Feb 2014
  327. # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua
  328. scripts with expires, and Redis users relying on the
  329. ability of Redis to block writes on RDB saving errors
  330. should plan to upgrade ASAP.
  331. * [FIX] Fixed a replication bug caused by Lua scripts + expired keys: keys could
  332. expire in the middle of scripts causing non-deterministic behavior.
  333. * [FIX] MISCONFIG error if condition fixed, the server was no longer able
  334. to stop writes on RDB misconfiguration after this error was introduced.
  335. * [FIX] REDIS_AOF_REWRITE_MIN_SIZE is now 64mb like example redis.conf default.
  336. * [FIX] Perform fflush() before fsync() in rio.c (bug without actual effects).
  337. * [FIX] Don't log MONITOR clients as disconnecting slaves.
  338. * [FIX] SENTINEL MASTER arity check fixed. Crashed the Sentinel instance when
  339. the command was given without arguments.
  340. * [NEW] Allow CONFIG and SHUTDOWN while in stale-slave state.
  341. * [NEW] Support for configurable TCP listen(2) backlog size.
  342. * [NEW] redis-cli supports SCAN via the --scan and --pattern options.
  343. * [NEW] SENTINEL SET master quorum via runtime API implemented.
  344. --[ Redis 2.8.4 ] Release date: 13 Jan 2014
  345. # UPGRADE URGENCY: MODERATE for Redis and Sentinel.
  346. * [FIX] Makefile compatibility with non common make variants improved.
  347. * [FIX] SDIFF crash in very unlikely to trigger state fixed.
  348. * [FIX] Config rewriting fixed: don't wipe options unknown to the rewrite
  349. process.
  350. * [FIX] Set TCP port to 0 works again to disable TCP networking.
  351. * [FIX] Fixed replication with old Redis instances as masters by not
  352. sending REPLCONF ACK to them.
  353. * [FIX] Fix keyspace notifications rewrite and CONFIG GET output.
  354. * [FIX] Fix RESTORE TTL handling in 32 bit systems (32 bit overflow).
  355. * [NEW] Sentinel now has a run time configuration API.
  356. * [NEW] Log when we lost connection with master or slave.
  357. * [NEW] When instance is turned from slave to master now inherits the
  358. old master replication offset when possible. This improves the
  359. Sentinel failover procedure.
  360. --[ Redis 2.8.3 ] Release date: 11 Dec 2013
  361. # UPGRADE URGENCY: MODERATE for Redis, HIGH for Sentinel.
  362. * [FIX] Sentinel instance role sampling fixed, the system is now more
  363. reliable during failover and when reconfiguring instances with
  364. non matching configuration.
  365. * [FIX] Inline requests are now handled even when terminated with just LF.
  366. * [FIX] Replication timeout handling greatly improved, now the slave is able
  367. to ping the master while removing the old data from memory, and while
  368. loading the new RDB file. This avoid false timeouts sensed by
  369. masters.
  370. * [FIX] Fixed a replication bug involving 32 bit instances and big datasets
  371. hard to compress that resulted into more than 2GB of RDB file sent.
  372. * [FIX] Return error for inline requests with unbalanced quotes.
  373. * [FIX] Publish the slave replication offset even when disconnected from the
  374. master if there is still a cached master instance.
  375. --[ Redis 2.8.2 ] Release date: 2 Dec 2013
  376. # UPGRADE URGENCY: MODERATE for both Redis and Sentinel.
  377. * [FIX] Sentinel better desynchronization to avoid split-brain elections
  378. where no Sentinel managed to get elected.
  379. * [FIX] Stop accepting writes on "MISCONF" error only if master, not slave.
  380. * [FIX] Reply to PING with an error on "MISCONF" errors.
  381. --[ Redis 2.8.1 ] Release date: 25 Nov 2013
  382. # UPGRADE URGENCY: LOW for Redis, CRITICAL for Senitnel. You don't need to
  383. upgrade your Redis instances but it is highly recommended
  384. to upgrade and restart all the Sentinel processes.
  385. * [FIX] Fixed a bug in "new Sentinel" config propagation.
  386. * [FIX] Fixed a false positive in Redis tests.
  387. --[ Redis 2.8.0 ] Release date: 22 Nov 2013
  388. # UPGRADE URGENCY: LOW, unless you want to upgrade to new Sentinel code.
  389. * [FIX] Fixed an error in rdbWriteRaw() that should have no practical impact.
  390. * [NEW] Log the new master when SLAVEOF command is used.
  391. * [NEW] Sentinel code synchronized with the unstable branch, the new Sentinel
  392. is a reimplementation that uses more reliable algorithms.
  393. --[ Redis 2.8 Release Candidate 6 (2.7.106) ] Release date: 6 Nov 2013
  394. This is the 6th release candidate of Redis 2.8 (official version is 2.7.106).
  395. # UPGRADE URGENCY: LOW, only new features back ported, no fixes.
  396. * [NEW] SCAN, SSCAN, HSCAN, ZSCAN commands.
  397. --[ Redis 2.8 Release Candidate 5 (2.7.105) ] Release date: 9 Oct 2013
  398. This is the 5th release candidate of Redis 2.8 (official version is 2.7.105).
  399. Important bugs fixed inside.
  400. # UPGRADE URGENCY: HIGH because of many non critical replication bugs fixed.
  401. * [FIX] redis-cli: don't crash with --bigkeys when the key no longer exist.
  402. * [FIX] Allow AUTH / PING when disconnected from slave and serve-stale-data is no.
  403. * [FIX] PSYNC: safer handling of PSYNC requests with offsets in the future.
  404. * [FIX] Replication: Fix master timeout detection.
  405. * [FIX] Replication: Correctly install the write handler after successful PSYNC.
  406. --[ Redis 2.8 Release Candidate 4 (2.7.104) ] Release date: 30 Aug 2013
  407. This is the fourth release candidate of Redis 2.8 (official version is 2.7.104).
  408. Important bugs fixed inside.
  409. # UPGRADE URGENCY: HIGH because of the EVAL memory leak.
  410. * [FIX] Fixed a serious EVAL memory leak in the Lua stack.
  411. * [FIX] Fixed server startup when no IPv6 address exists in any interface.
  412. * [FIX] Send MISCONFIG error when BGSAVE fails because can't fork.
  413. * [FIX] Memory efficiency with large (> a few kbytes) values improved considerably.
  414. * [NEW] DEBUG SDSLEN for sds memory debugging.
  415. --[ Redis 2.8 Release Candidate 3 (2.7.103) ] Release date: 19 Aug 2013
  416. This is the third release candidate of Redis 2.8 (official version is 2.7.103).
  417. Important bugs fixed inside.
  418. # UPGRADE URGENCY: HIGH
  419. * [FIX] Improved expired keys collection algorithm. Even under heavy load keys
  420. to be expired can't accumulate because of lack of CPU time.
  421. * [FIX] Replication speed regression fixed (issue #1238).
  422. * [FIX] Fixed an hard to trigger PSYNC bug.
  423. * [FIX] Fixed Issue #1240, ZUNIONSTORE could lead to wrong result.
  424. * [NEW] Add per-db average TTL information in INFO output.
  425. * [NEW] redis-benchmark improvements.
  426. * [NEW] dict.c API wrong usage detection.
  427. --[ Redis 2.8 Release Candidate 2 (2.7.102) ] Release date: 30 Jul 2013
  428. This is the second release candidate of Redis 2.8 (official version is 2.7.102).
  429. Important bugs fixed inside.
  430. # UPGRADE URGENCY: HIGH
  431. * [FIX] Fixed a critical replication bug, see issue #1221.
  432. * [NEW] The new inline protocol now accepts quoted strings like, for example
  433. you can now type in a telnet session: set 'foo bar' "hello world\n".
  434. --[ Redis 2.8 Release Candidate 1 (2.7.101) ] Release date: 18 Jul 2013
  435. This is the first release candidate of Redis 2.8 (official version is 2.7.101).
  436. The following is a list of improvements in Redis 2.8, compared to Redis 2.6.
  437. * [NEW] Slaves are now able to partially resynchronize with the master, so most
  438. of the times a full resynchronization with the RDB creation in the master
  439. side is not needed when the master-slave link is disconnected for a short
  440. amount of time.
  441. * [NEW] Experimental IPv6 support.
  442. * [NEW] Slaves explicitly ping masters now, a master is able to detect a timed out
  443. slave independently.
  444. * [NEW] Masters can stop accepting writes if not enough slaves with a given
  445. maximum latency are connected.
  446. * [NEW] Keyspace changes notifications via Pub/Sub.
  447. * [NEW] CONFIG SET maxclients is now available.
  448. * [NEW] Ability to bind multiple IP addresses.
  449. * [NEW] Set process names so that you can recognize, in the "ps" command output,
  450. the listening port of an instance, or if it is a saving child.
  451. * [NEW] Automatic memory check on crash.
  452. * [NEW] CONFIG REWRITE is able to materialize the changes in the configuration
  453. operated using CONFIG SET into the redis.conf file.
  454. * [NEW] More NetBSD friendly code base.
  455. * [NEW] PUBSUB command for Pub/Sub introspection capabilities.
  456. * [NEW] EVALSHA can now be replicated as such, without requiring to be expanded
  457. to a full EVAL for the replication link.
  458. * [NEW] Better Lua scripts error reporting.
  459. * [NEW] SDIFF performance improved.
  460. * [FIX] A number of bugfixes.
  461. Migrating from 2.6 to 2.8
  462. =========================
  463. Redis 2.6 is mostly a strict subset of 2.8. However there are a few things
  464. that you should be aware of:
  465. The following commands changed behavior:
  466. * The TTL and PTTL commands now return -2 if the key does not exist and
  467. -1 if it exists but has no associated expire. Redis 2.6 and previous
  468. versions used to return -1 for both the conditions.
  469. * SORT with ALPHA now sorts according to local collation locale if no STORE
  470. option is used.
  471. * ZADD/ZINCRBY are now able to accept a bigger range of values as valid
  472. scores, that is, all the values you may end having as a result of
  473. calling ZINCRBY multiple times.
  474. * Many errors are now prefixed by a more specific error code instead of
  475. the generic -ERR, for example -WRONGTYPE, -NOAUTH, ...
  476. * PUBLISH called inside Lua scripts is now correctly propagated to slaves.
  477. The following redis.conf and CONFIG GET / SET parameters changed:
  478. * logfile now uses the empty string in order to log to standard output,
  479. so 'logfile stdout' is now invalid, use 'logfile ""' instead.
  480. The following INFO fields changed format in a non-backward compatible way:
  481. * The list of slaves in INFO is now in field=value format.
  482. Replication:
  483. Redis 2.8 can be used as slave for Redis 2.6, but doing this is only
  484. a good idea for the short amount of time needed to upgrade your servers.
  485. We suggest to update both master and slaves at about the same time.
  486. --------------------------------------------------------------------------------
  487. Credits: Where not specified the implementation and design is done by
  488. Salvatore Sanfilippo. Thanks to VMware and Pivotal for making all
  489. this possible. Also many thanks to all the other contributors and the amazing
  490. community we have.
  491. See commit messages for more credits.
  492. Cheers,
  493. Salvatore