1Redis 5.0 release notes 2======================= 3 4-------------------------------------------------------------------------------- 5Upgrade urgency levels: 6 7LOW: No need to upgrade unless there are new features you want to use. 8MODERATE: Program an upgrade of the server, but it's not urgent. 9HIGH: There is a critical bug that may affect a subset of users. Upgrade! 10CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP. 11SECURITY: There are security fixes in the release. 12-------------------------------------------------------------------------------- 13 14================================================================================ 15Redis 5.0.5 Released Wed May 15 17:57:41 CEST 2019 16================================================================================ 17 18Upgrade urgency CRITICAL: This release fixes an important AOF fysnc bug 19 and other less critical issues. 20 21 22Dear user, 23 24Redis 5.0.5 fixes an important issue with AOF and adds multiple very useful 25modules APIs. Moreover smaller bugs in other parts of Redis are fixed in 26this release. 27 28The AOF bug 29----------- 30 31The AOF bug happens when the fsync policy is set to "everysec", which is the 32default: if the write load in the server drops immediately, the commands 33executed in the latest second may not be fsync-ed to disk as it should. 34This may lead to data loss in case the write load drops immediately and 35successively a server crash happens. 36 37Other things in this release 38---------------------------- 39 40* Streams: a bug in the iterator could prevent certain items to be returned in 41 range queries under specific conditions. 42* Memleak in bitfieldCommand fixed. 43* Modules API: Preserve client->id for blocked clients. 44* Fix memory leak when rewriting config file in case of write errors. 45* New modules API: RedisModule_GetKeyNameFromIO(). 46* Fix non critical bugs in diskless replication. 47* New mdouels API: command filtering. See RedisModule_RegisterCommandFilter(); 48* Tests improved to be more deterministic. 49* Fix a Redis Cluster bug, manual failover may abort because of the master 50 sending PINGs to the replicas. 51 52The following is the full list of commmits. 53 54Regards, 55Salvatore 56 57Christian Zeller in commit 1cac9b4b: 58 Typo fixes in CONTRIBUTING 59 1 file changed, 2 insertions(+), 2 deletions(-) 60 61antirez in commit f63c5c7b: 62 Update CONTRIBUTING with present info. 63 1 file changed, 15 insertions(+), 5 deletions(-) 64 65antirez in commit 668661da: 66 Narrow the effects of PR #6029 to the exact state. 67 1 file changed, 17 insertions(+), 5 deletions(-) 68 69chendianqiang in commit 3c2800e3: 70 stop ping when client pause 71 1 file changed, 1 insertion(+), 1 deletion(-) 72 73antirez in commit 7ac7ffd5: 74 Test: fix slowlog test false positive. 75 1 file changed, 3 insertions(+), 1 deletion(-) 76 77antirez in commit cc101721: 78 Make comment in getClientOutputBufferMemoryUsage() describing the present. 79 1 file changed, 1 insertion(+), 8 deletions(-) 80 81WuYunlong in commit 72420b0d: 82 Do not active expire keys in the background when the switch is off. 83 1 file changed, 6 insertions(+), 4 deletions(-) 84 85liaotonglang in commit 33a50d24: 86 delete sdsTest() from REDIS_TEST 87 1 file changed, 2 deletions(-) 88 89zhaozhao.zz in commit 6a92836f: 90 test cases: skiptill -> skip-till 91 1 file changed, 1 insertion(+), 1 deletion(-) 92 93Oran Agra in commit f179f71e: 94 make replication tests more stable on slow machines 95 3 files changed, 34 insertions(+), 4 deletions(-) 96 97Yossi Gottlieb in commit 1825a4ec: 98 Add runtest-moduleapi with commandfilter coverage. 99 5 files changed, 63 insertions(+), 28 deletions(-) 100 101Yossi Gottlieb in commit 9d20fdb4: 102 fix: missing initialization. 103 3 files changed, 1 insertion(+) 104 105antirez in commit ded1980e: 106 Test: disable module testing for now. 107 1 file changed, 1 deletion(-) 108 109Yossi Gottlieb in commit c3df78c2: 110 CommandFilter API: REDISMODULE_CMDFILTER_NOSELF. 111 4 files changed, 62 insertions(+), 15 deletions(-) 112 113Yossi Gottlieb in commit 8d38ef20: 114 CommandFilter API: fix UnregisterCommandFilter. 115 1 file changed, 2 insertions(+), 3 deletions(-) 116 117Yossi Gottlieb in commit 9b7009b1: 118 CommandFilter API: Add unregister option. 119 4 files changed, 126 insertions(+), 32 deletions(-) 120 121Yossi Gottlieb in commit 05802442: 122 CommandFilter API: Extend documentation. 123 1 file changed, 43 insertions(+), 5 deletions(-) 124 125Yossi Gottlieb in commit d5194daf: 126 CommandFilter API: hellofilter and tests. 127 2 files changed, 47 insertions(+), 5 deletions(-) 128 129Yossi Gottlieb in commit 8897c154: 130 CommandFilter API: Support Lua and RM_call() flows. 131 2 files changed, 18 insertions(+), 7 deletions(-) 132 133Yossi Gottlieb in commit 6dd5bad4: 134 CommandFilter API: More cleanup. 135 2 files changed, 10 insertions(+), 29 deletions(-) 136 137Yossi Gottlieb in commit 83026101: 138 Add command filter Module API tests. 139 2 files changed, 28 insertions(+) 140 141Yossi Gottlieb in commit dc5edc7b: 142 Add command filtering argument handling API. 143 3 files changed, 132 insertions(+), 13 deletions(-) 144 145Yossi Gottlieb in commit 5f29e2e2: 146 Initial command filter experiment. 147 6 files changed, 161 insertions(+), 2 deletions(-) 148 149Oran Agra in commit e1839ab3: 150 diskless fork kept streaming RDB to a disconnected slave 151 1 file changed, 10 insertions(+) 152 153Oran Agra in commit 3b207b89: 154 diskless replication - notify slave when rdb transfer failed 155 1 file changed, 1 insertion(+) 156 157antirez in commit 7e350b09: 158 More sensible name for function: restartAOFAfterSYNC(). 159 1 file changed, 7 insertions(+), 3 deletions(-) 160 161antirez in commit 91238a60: 162 Mostly aesthetic changes to restartAOF(). 163 1 file changed, 7 insertions(+), 3 deletions(-) 164 165oranagra in commit ee2da67c: 166 bugfix to restartAOF, exit will never happen since retry will get negative. 167 1 file changed, 5 insertions(+), 4 deletions(-) 168 169Oran Agra in commit 78022492: 170 Add log when server dies of SIGTERM during loading 171 1 file changed, 1 insertion(+) 172 173Yossi Gottlieb in commit 232dca7f: 174 Add RedisModule_GetKeyNameFromIO(). 175 8 files changed, 30 insertions(+), 17 deletions(-) 176 177antirez in commit 7f98129a: 178 MANIFESTO: simplicity and lock-in. 179 1 file changed, 5 insertions(+), 1 deletion(-) 180 181antirez in commit 71265fe3: 182 MANIFESTO v2. 183 1 file changed, 41 insertions(+), 6 deletions(-) 184 185yongman in commit 8115be6e: 186 Fix uint64_t hash value in active defrag 187 1 file changed, 3 insertions(+), 3 deletions(-) 188 189Angus Pearson in commit 90e7b5a9: 190 Enlarge error buffer in redis-check-aof.c to remove compiler warning of output truncation through snprintf format string 191 1 file changed, 1 insertion(+), 1 deletion(-) 192 193zhaozhao.zz in commit 43151baf: 194 fix memory leak when rewrite config file 195 1 file changed, 3 insertions(+), 4 deletions(-) 196 197唐权 in commit d3c17c9d: 198 Update ziplist.c 199 1 file changed, 1 insertion(+), 1 deletion(-) 200 201stan011 in commit 296bd097: 202 change the comments there may have a mis type 203 1 file changed, 1 insertion(+), 1 deletion(-) 204 205Yossi Gottlieb in commit e08c9c15: 206 Preserve client->id for blocked clients. 207 1 file changed, 4 insertions(+), 1 deletion(-) 208 209zhaozhao.zz in commit c6b1252f: 210 aof: enhance AOF_FSYNC_EVERYSEC, more details in #5985 211 2 files changed, 32 insertions(+), 3 deletions(-) 212 213David Carlier in commit ce54e299: 214 build fix 215 1 file changed, 1 insertion(+) 216 217yongman in commit c9274498: 218 Fix memleak in bitfieldCommand 219 1 file changed, 8 insertions(+), 2 deletions(-) 220 221James Rouzier in commit 635d8d83: 222 Fix start and end key initialize 223 1 file changed, 2 insertions(+), 2 deletions(-) 224 225Salvatore Sanfilippo in commit 7c23e534: 226 Merge pull request #6047 from abhaynahar/removed-obsolete-warning-5.0 227abhay in commit 9ea8ec42: 228 removed obsolete warning as per - https://github.com/antirez/redis/issues/5291 229 1 file changed, 1 insertion(+), 7 deletions(-) 230 231antirez in commit 1b7407fa: 232 Aesthetic change to #5962 to conform to Redis style. 233 1 file changed, 1 insertion(+), 3 deletions(-) 234 235Oran Agra in commit 3bbf9747: 236 slave corrupts replication stream when module blocked client uses large reply (or POSTPONED_ARRAY) 237 3 files changed, 15 insertions(+), 6 deletions(-) 238 239================================================================================ 240Redis 5.0.4 Released Mon Mar 18 17:12:53 CET 2019 241================================================================================ 242 243Upgrade urgency HIGH: This release fixes several Redis stability issues. 244 245Dear Redis users, this release includes a number of fixes for bugs that may 246result in Redis crashing in special conditions (not normal usage, but specific 247artificial conditions), fixes to certain Redis behaviors especially around 248Redis streams, and finally a set of new APIs for Redis Modules. 249 250Specifically: 251 252* Hyperloglog different coding errors leading to potential crashes were fixed. 253* A replication bug leading to a potential crash in case of plain misuse of handshake commands was fixed. 254* XCLAIM command incrementing of number of deliveries was fixed. 255* LFU field management in objects was improved. 256* A potential overflow in the redis-check-aof was fixed. 257* A memory leak in case of API misuse was fixed. 258* ZPOP* behavior when count is 0 is fixed. 259* A few redis-cli --cluster bugs were fixed, plus a few improvements. 260* Many other smaller bugs. 261 262We suggest to upgrade Redis, especially in case your instance is facing 263untrusted users (for instance Cloud providers) because several of these 264bugs could result in unwanted crashes. 265 266This is the list of commits: 267 268antirez in commit 84bdd440: 269 HyperLogLog: fix comment in hllCount(). 270 1 file changed, 2 insertions(+), 2 deletions(-) 271 272antirez in commit ef1833b3: 273 HyperLogLog: handle wrong offset in the base case. 274 1 file changed, 2 insertions(+), 6 deletions(-) 275 276antirez in commit 623afd5e: 277 HyperLogLog: speedup fuzz test. 278 1 file changed, 1 insertion(+), 2 deletions(-) 279 280antirez in commit 12b5ff10: 281 HyperLogLog: enlarge reghisto variable for safety. 282 1 file changed, 6 insertions(+), 1 deletion(-) 283 284antirez in commit 254d897e: 285 HyperLogLog: dense/sparse repr parsing fuzz test. 286 1 file changed, 29 insertions(+) 287 288John Sully in commit 7f79849c: 289 Fix hyperloglog corruption 290 1 file changed, 6 insertions(+) 291 292Brad Solomon in commit 3ef2c831: 293 Provide an uninstall target in Makefile 294 1 file changed, 3 insertions(+) 295 296antirez in commit 57aea463: 297 redis-check-aof: fix potential overflow. 298 1 file changed, 2 insertions(+), 2 deletions(-) 299 300antirez in commit ba5145b8: 301 Fix objectSetLRUOrLFU() when LFU underflows. 302 1 file changed, 11 insertions(+), 7 deletions(-) 303 304antirez in commit 76c59f0e: 305 Fix ZPOP return type when COUNT=0. Related to #5799. 306 1 file changed, 1 insertion(+), 1 deletion(-) 307 308antirez in commit 1c636714: 309 Improve comments after merging #5834. 310 2 files changed, 14 insertions(+), 8 deletions(-) 311 312Guy Benoish in commit 6a3fca4c: 313 Trim SDS free space of retained module strings 314 4 files changed, 28 insertions(+), 5 deletions(-) 315 316Guy Benoish in commit 9ec144ea: 317 Fix mismatching keyspace notification classes 318 2 files changed, 2 insertions(+), 2 deletions(-) 319 320Guy Benoish in commit d04b5211: 321 Fix zlexrangespec mem-leak in genericZrangebylexCommand 322 1 file changed, 4 insertions(+), 1 deletion(-) 323 324Guy Benoish in commit 516f1c77: 325 Use memtoll() in 'CONFIG SET client-output-buffer-limit' 326 1 file changed, 2 insertions(+), 2 deletions(-) 327 328Guy Benoish in commit 8db67a55: 329 Increase string2ld's buffer size (and fix HINCRBYFLOAT) 330 2 files changed, 5 insertions(+), 1 deletion(-) 331 332Guy Benoish in commit db3d626b: 333 Check server.verbosity in RM_LogRaw 334 1 file changed, 2 insertions(+) 335 336Guy Benoish in commit 71439a07: 337 ZPOP should return an empty array if COUNT=0 338 1 file changed, 4 insertions(+), 1 deletion(-) 339 340antirez in commit c8a26834: 341 Modules shared API: export new core APIs. 342 2 files changed, 6 insertions(+) 343 344antirez in commit a13ba750: 345 Modules shared API: also unregister the module as user. 346 1 file changed, 23 insertions(+) 347 348antirez in commit 500e5117: 349 Modules shared API: prevent unloading of used modules. 350 1 file changed, 10 insertions(+), 4 deletions(-) 351 352antirez in commit 7854daa1: 353 Modules shared API: unregister APIs function. 354 1 file changed, 25 insertions(+) 355 356antirez in commit d38d82af: 357 Modules shared API: initial core functions. 358 2 files changed, 89 insertions(+), 1 deletion(-) 359 360antirez in commit 4d747bb8: 361 Revert shared APIs to modify the design. 362 3 files changed, 120 deletions(-) 363 364MeirShpilraien in commit 8824b509: 365 added module ability to register api to be used by other modules 366 3 files changed, 120 insertions(+) 367 368zhaozhao.zz in commit 000b055b: 369 Streams: checkType before XGROUP CREATE 370 1 file changed, 7 insertions(+), 5 deletions(-) 371 372antirez in commit 9b2a0d54: 373 Fix BZPOP arity, backport from fix in cd2743c. 374 1 file changed, 2 insertions(+), 2 deletions(-) 375 376chendianqiang in commit 134b2582: 377 optimize cluster failover 378 1 file changed, 1 insertion(+) 379 380Steve Webster in commit 1293e2a5: 381 Only increment delivery count if JUSTID option is omitted 382 2 files changed, 18 insertions(+), 3 deletions(-) 383 384Steve Webster in commit 3cc4f469: 385 Increment delivery counter on XCLAIM unless RETRYCOUNT specified 386 2 files changed, 35 insertions(+), 2 deletions(-) 387 388antirez in commit f4edd2b9: 389 Merge branch '5.0' of github.com:/antirez/redis into 5.0 390swilly22 in commit cedcc54e: 391 document additional flag of RM_GetContextFlags 392 1 file changed, 3 insertions(+) 393 394swilly22 in commit 26e98da2: 395 Extend REDISMODULE_CTX_FLAGS to indicate if command was sent by master 396 2 files changed, 6 insertions(+) 397 398Salvatore Sanfilippo in commit 0e910939: 399 Merge pull request #5879 from meierfra-ergon/redis-cli-assume-yes 400antirez in commit 67452e91: 401 Make comment in #5911 stay inside 80 cols. 402 1 file changed, 2 insertions(+), 1 deletion(-) 403 404John Sully in commit 30f666ef: 405 Replicas aren't allowed to run the replicaof command 406 1 file changed, 8 insertions(+) 407 408Frank Meier in commit bc6c1c40: 409 extend use of cluster-yes option to other confimation questions 410 1 file changed, 9 insertions(+) 411 412antirez in commit 76419d8d: 413 Merge branch '5.0' of github.com:/antirez/redis into 5.0 414Oran Agra in commit 72ba6069: 415 redis-cli add support for --memkeys, fix --bigkeys for module types 416 1 file changed, 132 insertions(+), 81 deletions(-) 417 418chendianqiang in commit 2ca21753: 419 fix replicationid will not change for server.masterhost==NULL in cluster mode when restart slave 420 1 file changed, 1 insertion(+), 1 deletion(-) 421 422Salvatore Sanfilippo in commit bd7ddd79: 423 Merge pull request #5870 from fengweiyuan/5.0 424varianfeng in commit d13bc143: 425 fix corrupt_rdb.c bug.Let the name of input rdb file name be valid. 426 1 file changed, 2 insertions(+), 1 deletion(-) 427 428artix in commit 44c5bce0: 429 Cluster Manager: fix replica assigment anti-affinity (create) 430 1 file changed, 6 insertions(+) 431 432artix in commit f066e526: 433 Cluster Manager: remove unused code elements 434 1 file changed, 8 insertions(+), 13 deletions(-) 435 436Zhicheng Wei in commit 23214966: 437 fix clusterManagerGetAntiAffinityScore double free otypes 438 1 file changed, 2 insertions(+), 1 deletion(-) 439 440antirez in commit 80bccd71: 441 Remove debugging printf from replication.tcl test. 442 1 file changed, 1 deletion(-) 443 444================================================================================ 445Redis 5.0.3 Released Tue Dec 11 18:17:26 CET 2018 446================================================================================ 447 448Upgrade urgency HIGH: Redis 5 is consolidating, upgrading is a good idea. 449 However there is nothing very critical here, but certain 450 issues resolved could lead to very rare crashes. 451 452Welcome to Redis 5.0.3, several interesting bug fixes here: 453 454* Redis no longer panics when you send data to a replica-mode connection that 455 is in MONITOR or SYNC mode. 456 457* Fixes to certain sorted set edge cases. You are unlikely to ever notice those 458 issues, but now it is more correct. 459 460* Certain BSD variants now are better supported: build & register logging 461 on crash. 462 463* The networking core now recovers if an IPv6 address is listed in bind but 464 is actually not able to work because there is no such protocol in the 465 system. 466 467* redis-cli cluster mode improved in many ways. Especially the fix subcommand 468 work was enhanced to cover other edge cases that were still not covered 469 after the work done for Redis 5. 470 471* MEMORY USAGE is now more accurate. 472 473* DEBUG DIGEST-VALUE added in case you want to make sure a given set of keys 474 (and not the whole DB) are excatly the same between two instances. 475 476* Fix a potential crash in the networking code related to recent changes 477 to the way the reply is consumed. 478 479* Reject EXEC containing write commands against an instance that changed role 480 from master to replica during our transaction. 481 482* Fix a crash in KEYS and other commands using pattern matching, in an edge 483 case where the pattern contains a zero byte. 484 485* Fix eviction during AOF loading due to maxmemory triggered by commands 486 executed in loading state. 487 488The following is the list of commmits if you want to check credits or dig 489further in the details. 490 491commit 2c6ee0f9b3d9ca48c6da8bd18796186784216bff 492Author: antirez <[email protected]> 493Date: Wed Dec 12 11:37:15 2018 +0100 494 495 freeMemoryIfNeeded() small refactoring. 496 497 Related to issue #5686 and PR #5689. 498 499commit 107e93e75acfd5def0252efb6870751940816395 500Author: zhaozhao.zz <[email protected]> 501Date: Wed Dec 12 00:25:24 2018 +0800 502 503 evict: don't care about mem if loading 504 505 When loading data, we call processEventsWhileBlocked 506 to process events and execute commands. 507 But if we are loading AOF it's dangerous, because 508 processCommand would call freeMemoryIfNeeded to evict, 509 and that will break data consistency, see issue #5686. 510 511antirez in commit ee93dc0b: 512 Crashing is too much in addReplyErrorLength(). 513 1 file changed, 6 deletions(-) 514 515hdmg in commit c55254a5: 516 fix comments fault discription 517 1 file changed, 1 insertion(+), 1 deletion(-) 518 519lsytj0413 in commit dfd25013: 520 fix a typo: craeted -> created 521 1 file changed, 1 insertion(+), 1 deletion(-) 522 523antirez in commit 392a2566: 524 stringmatchlen() fuzz test added. 525 3 files changed, 22 insertions(+) 526 527antirez in commit 7602f695: 528 Fix stringmatchlen() read past buffer bug. 529 1 file changed, 1 insertion(+), 1 deletion(-) 530 531zhaozhao.zz in commit c4f3585e: 532 multi: ignore multiState's cmd_flags when loading AOF 533 1 file changed, 1 insertion(+), 1 deletion(-) 534 535antirez in commit d037e987: 536 Reject EXEC containing write commands against RO replica. 537 2 files changed, 20 insertions(+) 538 539artix in commit e00ab324: 540 Cluster Manager: - Multiple owners checking in 'fix'/'check' commands is 541 now optional (using --cluster-search-multiple-owners). - Updated help. 542 1 file changed, 14 insertions(+), 5 deletions(-) 543 544artix in commit 94f64de3: 545 Cluster Manager: FixOpenSlot now correctly updates in-memory cluster 546 configuration. Improved output messages. 547 1 file changed, 17 insertions(+), 5 deletions(-) 548 549artix in commit 752d636f: 550 Cluster Manager: 'fix' command now handles open slots with migrating state 551 in one node and importing state in multiple nodes. 552 1 file changed, 74 insertions(+), 6 deletions(-) 553 554artix in commit 552091f9: 555 Cluster Manager: setting new slot owner is now handled atomically in 556 'fix' command. 557 1 file changed, 72 insertions(+), 31 deletions(-) 558 559artix in commit 2280f4f7: 560 Cluster Manager: code cleanup. 561 1 file changed, 41 insertions(+), 87 deletions(-) 562 563artix in commit e084b8cc: 564 Cluster Manager: check/fix commands now handle multiple owners even 565 if all slots are covered and not open. 566 1 file changed, 129 insertions(+), 6 deletions(-) 567 568zhaozhao.zz in commit fa726e2a: 569 remove useless tryObjectEncoding in debug assert 570 1 file changed, 1 deletion(-) 571 572Oran Agra in commit 40244b10: 573 fix #5580, display fragmentation and rss overhead bytes as signed 574 2 files changed, 6 insertions(+), 6 deletions(-) 575 576zhaozhao.zz in commit beab3151: 577 networking: current_client should not be NULL when trim qb_pos 578 1 file changed, 1 insertion(+), 1 deletion(-) 579 580antirez in commit 07ccb642: 581 Remove no longer relevant comment in processCommand(). 582 1 file changed, 2 insertions(+), 6 deletions(-) 583 584antirez in commit 60fdaf07: 585 DEBUG DIGEST-VALUE implemented. 586 1 file changed, 17 insertions(+), 3 deletions(-) 587 588antirez in commit 48b31b0d: 589 DEBUG DIGEST refactoring: extract function to digest a value. 590 1 file changed, 142 insertions(+), 131 deletions(-) 591 592yura in commit ef3ff402: 593 redis-cli reshard/rebalance: ability to force replacement on existing keys 594 1 file changed, 6 insertions(+), 5 deletions(-) 595 596Thomas Orozco in commit ee223fb8: 597 cli: pass auth through REDISCLI_AUTH 598 1 file changed, 14 insertions(+) 599 600yongman in commit 41295e55: 601 Fix cluster call reply format readable 602 1 file changed, 1 insertion(+), 1 deletion(-) 603 604Oran Agra in commit 0ed3970f: 605 fix small test suite race conditions 606 3 files changed, 11 insertions(+) 607 608zhaozhao.zz in commit 605dddbb: 609 MEMORY command: make USAGE more accurate 610 1 file changed, 7 insertions(+), 6 deletions(-) 611 612yongman in commit 1f43bf29: 613 Fix choose a random master node for slot assignment 614 1 file changed, 29 insertions(+), 5 deletions(-) 615 616Weiliang Li in commit 69f0c678: 617 fix comment typo in util.c 618 1 file changed, 1 insertion(+), 1 deletion(-) 619 620Chris Lamb in commit bc53a3ab: 621 Clarify the "Creating Server TCP listening socket" error. 622 1 file changed, 1 insertion(+), 1 deletion(-) 623 624Chris Lamb in commit fefe5460: 625 Don't treat unsupported protocols as fatal errors 626 1 file changed, 4 insertions(+) 627 628David Carlier in commit a8862972: 629 OpenBSD support. 630 3 files changed, 74 insertions(+), 1 deletion(-) 631 632David Carlier in commit 5e86daf9: 633 Backtrace/register dump on BSD. 634 3 files changed, 97 insertions(+), 3 deletions(-) 635 636Guy Benoish in commit 7c8cf5ac: 637 Don't call sdscmp() with shared.maxstring or shared.minstring 638 2 files changed, 23 insertions(+), 9 deletions(-) 639 640Qu Chen in commit 39e9eda3: 641 Add unit test for stream XCLAIM command. 642 1 file changed, 48 insertions(+) 643 644antirez in commit 62485232: 645 Abort instead of crashing when loading bad stream master key. 646 1 file changed, 3 insertions(+) 647 648Madelyn Olson in commit a5487309: 649 Fixed a serverPanic when sending an invalid command to a monitor client 650 1 file changed, 1 insertion(+), 1 deletion(-) 651 652================================================================================ 653Redis 5.0.2 Released Thu Nov 22 11:22:37 CET 2018 654================================================================================ 655 656Upgrade urgency: CRITICAL if you use streams and consumer groups. 657 HIGH if you use redis-cli with Redis Cluster. 658 LOW otherwise. 659 660Welcome to Redis 5.0.2. This release fixes two issues with Streams consumer 661groups, where items could be returned duplicated by XREADGROUP when accessing 662the history, and another bug where XREADGROUP can report some history even 663if the comsumer pending list is empty. Both problems were addressed and unit 664tests to avoid regressions implemented. Moreover this release fixes some 665issue with redis-cli when in cluster mode. Finally some FreeBSD and DragonFly 666build problems are now resolved. The list of the commits is below. 667 668Enjoy, 669Salvatore 670 671David Carlier in commit e8b4291a: 672 DragonFlyBSD little build fix 673 2 files changed, 6 insertions(+), 1 deletion(-) 674 675yongman in commit 8fcfd374: 676 skip slave nodes when sending cluster setslot command 677 1 file changed, 1 insertion(+) 678 679yongman in commit d7089ddd: 680 Fix pointer access and memory leak in redis-cli. 681 1 file changed, 6 insertions(+), 3 deletions(-) 682 683antirez in commit 17b4cd83: 684 Test: regression test for #5570. 685 1 file changed, 15 insertions(+) 686 687antirez in commit 45123169: 688 Stream: fix XREADGROUP history reading of deleted messages. 689 1 file changed, 1 insertion(+), 1 deletion(-) 690 691David Carlier in commit 5ad588f0: 692 only FreeBSD change/little warning addressing 693 2 files changed, 7 insertions(+), 4 deletions(-) 694 695David Carlier in commit 11801e1a: 696 tweak form feedback 697 1 file changed, 1 insertion(+), 1 deletion(-) 698 699David Carlier in commit c1f13575: 700 allow flavors 701 1 file changed, 1 insertion(+), 1 deletion(-) 702 703David Carlier in commit 275a2d49: 704 Fix clang build. 705 1 file changed, 5 insertions(+), 1 deletion(-) 706 707antirez in commit 44ad5141: 708 Test: regression test for #5577. 709 1 file changed, 24 insertions(+) 710 711antirez in commit c7951f43: 712 Streams: fix XREADGROUP history reading when CG last_id is low. 713 1 file changed, 12 insertions(+), 9 deletions(-) 714 715antirez in commit a69bc5be: 716 t_stream.c comment resized to 80 cols. 717 1 file changed, 2 insertions(+), 1 deletion(-) 718 719antirez in commit 5314099d: 720 Redis 5 changelog: don't expect Lua replies to be ordered. 721 1 file changed, 14 insertions(+), 5 deletions(-) 722 723================================================================================ 724Redis 5.0.1 Released Wed Nov 07 13:09:30 CET 2018 725================================================================================ 726 727Upgrade urgency: URGENT if you use Redis Streams. MODERATE otherwise. 728 729Hi all, this is the first patch level release of Redis 5. It contains 730both fixes and improvements. Here there is a list of the major ones, however 731read the commit messages at the end of the changelog if you want to know 732more about the smaller things. Let's start with the new features: 733 734* Sentinel now supports authentication! Check the Sentinel official doc 735 for more info. 736 737* Redis-cli cluster "fix" is now able to fix a big number of clusters put 738 in a bad condition. Previously many corner cases were not covered. 739 740Now the critical fixes: 741 7421. Fix RESTORE mismatch reply when certain keys already expired. 7432. Fix an XCLAIM non trivial issue: sometimes the command returned a wrong 744 entry or desynchronized the protocol. 745 746And now the other fixes: 747 7483. Stack trace generation on the Raspberry PI (and 32bit ARM) fixed. 7494. Don't evict expired keys when the KEYS command is called, in order to 750 avoid a mass deletion event. However expired keys are not displayed 751 by KEYS as usually. 7525. Improvements in the computation of the memory used, when estimating 753 the AOF buffers. 7546. XRANGE COUNT of 0 fixed. 7557. "key misses" stats accounting fixed. Many cache misses were not counted. 7568. When in MULTI state, return OOM while accumulating commands and there 757 is no longer memory available. 7589. Fix build on FreeBSD and possibly others. 75910. Fix a crash in Redis modules, thread safe context reply accumulation. 76011. Fix a race condition when producing the RDB file for full SYNC. 76112. Disable protected mode in Sentinel. 76213. More commands now have the HELP subcommand. 76314. Fixed an issue about adaptive server HZ timer. 76415. Fix cluster-replica-no-failover option name. 765 766Finally, this is the list of commits. Enjoy Redis 5.0.1! 767 768antirez in commit c801283f: 769 Fix cluster-replica-no-failover option name. 770 1 file changed, 1 insertion(+), 1 deletion(-) 771 772antirez in commit 4c4f50e1: 773 MEMORY command: make strcasecmp() conditional like the following. 774 1 file changed, 1 insertion(+), 2 deletions(-) 775 776Itamar Haber in commit a7b46e0e: 777 Uppercases subcommands in MEMORY HELP 778 1 file changed, 5 insertions(+), 5 deletions(-) 779 780Itamar Haber in commit 80e129d9: 781 Standardizes `MEMORY HELP` subcommand 782 1 file changed, 13 insertions(+), 14 deletions(-) 783 784valentino in commit 88805cbb: 785 fix short period of server.hz being uninitialized 786 1 file changed, 1 insertion(+), 1 deletion(-) 787 788Itamar Haber in commit 6b402733: 789 Adds HELP to LATENCY 790 1 file changed, 14 insertions(+), 2 deletions(-) 791 792yongman in commit 1c637de9: 793 fix malloc in clusterManagerComputeReshardTable 794 1 file changed, 1 insertion(+), 1 deletion(-) 795 796artix in commit 90b52fde: 797 Cluster Manager: removed unused var. 798 1 file changed, 1 insertion(+), 2 deletions(-) 799 800artix in commit 89cbb5df: 801 Cluster Manager: further improvements to "fix": - clusterManagerFixOpenSlot: ensure that the slot is unassigned before ADDSLOTS - clusterManagerFixSlotsCoverage: after cold migration, the slot configuration is now updated on all the nodes. 802 1 file changed, 49 insertions(+), 10 deletions(-) 803 804artix in commit 175515c9: 805 Cluster Manager: fixed string parsing issue in clusterManagerGetConfigSignature 806 1 file changed, 3 insertions(+), 3 deletions(-) 807 808artix in commit 3997dd6e: 809 Cluster Manager: better fix subcommand. 810 1 file changed, 78 insertions(+), 20 deletions(-) 811 812artix in commit bd80291c: 813 Cluster Manager: fixed typos in comments. 814 1 file changed, 3 insertions(+), 3 deletions(-) 815 816artix in commit 4369cbce: 817 Cluster Manager: fixed 'DELSLOT' subcommand typo. 818 1 file changed, 1 insertion(+), 1 deletion(-) 819 820antirez in commit 1ed821e2: 821 Fix XCLAIM missing entry bug. 822 1 file changed, 3 insertions(+), 2 deletions(-) 823 824michael-grunder in commit b49bcd01: 825 Use typedef'd mstime_t instead of time_t 826 1 file changed, 1 insertion(+), 1 deletion(-) 827 828antirez in commit 09d1849e: 829 Improve streamReplyWithRange() top comment. 830 1 file changed, 9 insertions(+), 5 deletions(-) 831 832antirez in commit bdf6306f: 833 Add support for Sentinel authentication. 834 1 file changed, 17 insertions(+), 3 deletions(-) 835 836antirez in commit 50222af5: 837 Disable protected mode in Sentinel mode. 838 1 file changed, 1 insertion(+) 839 840antirez in commit 643ee6e3: 841 When replica kills a pending RDB save during SYNC, log it. 842 1 file changed, 6 insertions(+) 843 844Andrey Bugaevskiy in commit 8b609c99: 845 Move child termination to readSyncBulkPayload 846 1 file changed, 6 insertions(+), 7 deletions(-) 847 848Andrey Bugaevskiy in commit 27102605: 849 Prevent RDB autosave from overwriting full resync results 850 1 file changed, 7 insertions(+) 851 852antirez in commit a677923d: 853 asyncCloseClientOnOutputBufferLimitReached(): don't free fake clients. 854 1 file changed, 1 insertion(+) 855 856David Carlier in commit 427e440a: 857 needs it for the global 858 1 file changed, 1 insertion(+) 859 860David Carlier in commit 28f9ca4e: 861 Fix non Linux build. 862 3 files changed, 20 insertions(+), 1 deletion(-) 863 864zhaozhao.zz in commit 4bf9efe2: 865 MULTI: OOM err if cannot free enough memory in MULTI/EXEC context 866 1 file changed, 5 insertions(+), 2 deletions(-) 867 868antirez in commit 4fbd7a39: 869 Add command fingerprint comment for XSETID. 870 1 file changed, 3 insertions(+), 1 deletion(-) 871 872Itamar Haber in commit 2480db53: 873 Plugs a potential underflow 874 1 file changed, 1 insertion(+) 875 876Itamar Haber in commit e5e4d2ef: 877 Corrects inline documentation of syntax 878 1 file changed, 1 insertion(+), 1 deletion(-) 879 880zhaozhao.zz in commit 713800d2: 881 if we read a expired key, misses++ 882 1 file changed, 5 insertions(+), 1 deletion(-) 883 884antirez in commit e79ee263: 885 Fix XRANGE COUNT option for value of 0. 886 1 file changed, 8 insertions(+), 2 deletions(-) 887 888antirez in commit 505cc70f: 889 Fix typo in streamReplyWithRange() top comment. 890 1 file changed, 1 insertion(+), 1 deletion(-) 891 892Damien Tournoud in commit 3c36561d: 893 Overhead is the allocated size of the AOF buffer, not its length 894 2 files changed, 2 insertions(+), 2 deletions(-) 895 896antirez in commit 3761582f: 897 Simplify part of the #5470 patch. 898 1 file changed, 11 insertions(+), 12 deletions(-) 899 900zhaozhao.zz in commit edc47a3a: 901 do not delete expired keys in KEYS command 902 1 file changed, 34 insertions(+), 27 deletions(-) 903 904antirez in commit 9872af6d: 905 Use guide comments to make changes in #5462 more obvious. 906 1 file changed, 6 insertions(+) 907 908youjiali1995 in commit 3f399c3b: 909 migrate: fix mismatch of RESTORE reply when some keys have expired. 910 1 file changed, 8 insertions(+), 6 deletions(-) 911 912hujie in commit eaaff621: 913 fix typo in config.c 914 1 file changed, 1 insertion(+), 1 deletion(-) 915 916hujiecs in commit 43ebb7ee: 917 several typos fixed, optimize MSETNX to avoid unnecessary loop 918 4 files changed, 4 insertions(+), 4 deletions(-) 919 920antirez in commit de8fdaac: 921 Remove useless complexity from MSET implementation. 922 1 file changed, 5 insertions(+), 7 deletions(-) 923 924antirez in commit dc8f1112: 925 Fix again stack generation on the Raspberry Pi. 926 1 file changed, 4 insertions(+) 927 928antirez in commit 83a6e81d: 929 Get rid of the word slave in the release note of Redis 5. 930 1 file changed, 2 insertions(+), 2 deletions(-) 931 932================================================================================ 933Redis 5.0.0 Released Wed Oct 17 13:28:26 CEST 2018 934================================================================================ 935 936Upgrade urgency CRITICAL: Several fixes to streams AOF and replication. 937 938Hi all and welcome to the first stable release of Redis 5! \o/ 939 940To start a quick recap of what's new in Redis 5: 941 9421. The new Stream data type. https://redis.io/topics/streams-intro 9432. New Redis modules APIs: Timers, Cluster and Dictionary APIs. 9443. RDB now store LFU and LRU information. 9454. The cluster manager was ported from Ruby (redis-trib.rb) to C code 946 inside redis-cli. Check `redis-cli --cluster help` for more info. 9475. New sorted set commands: ZPOPMIN/MAX and blocking variants. 9486. Active defragmentation version 2. 9497. Improvemenets in HyperLogLog implementations. 9508. Better memory reporting capabilities. 9519. Many commands with sub-commands now have an HELP subcommand. 95210. Better performances when clients connect and disconnect often. 95311. Many bug fixes and other random improvements. 95412. Jemalloc was upgraded to version 5.1 95513. CLIENT UNBLOCK and CLIENT ID. 95614. The LOLWUT command was added. http://antirez.com/news/123 95715. We no longer use the "slave" word if not for API backward compatibility. 95816. Differnet optimizations in the networking layer. 95917. Lua improvements: 960 - Better propagation of Lua scripts to replicas / AOF. 961 - Lua scripts can now timeout and get in -BUSY state in the replica as well. 96218. Dynamic HZ to balance idle CPU usage with responsiveness. 96319. The Redis core was refactored and improved in many ways. 964 965However the list above really does not do justice to the changes of Redis 5 966since the core was improved in many ways during the development of the new 967version. However certain changes were back ported into Redis 4 once they were 968sensed as safe, because many improvements were hard to distinguish from fixes. 969 970The most important user facing improvement is without doubts the introduction 971of the new general purpose data type after years: the streams. 972 973Note that we worked to improve and fix streams till a few hours ago, so while 974we are not aware of critical bugs in this release, surely there is to handle it 975with some care for the first weeks. Bug reporting will be highly appreciated and 976we are ready to work immediately to release 5.0.1 once there is enough important 977stuff to justify a new release (probably soon). 978 979People not using the streams can have probably a better production-ready 980experience with Redis 5, also because many internals are shared with Redis 4 981so the jump is not as big as it was between 3.2 and 4 in terms of how things 982internally work. 983 984Well, many thanks to the Redis community and the developers that made 985this release possible, contributing bug reports, patches, new features, working 986on the clients, sometimes debugging problems for days. Also thank to everybody 987that adopted Redis for their use cases making things work for users worldwide. 988 989The list of commits in this release follows. 990 991Cheers, 992Salvatore 993 994antirez in commit bcc0916d: 995 Fix conditional in XGROUP. 996 1 file changed, 1 insertion(+), 1 deletion(-) 997 998antirez in commit 1b2f23f3: 999 Update help.h for redis-cli. 1000 1 file changed, 57 insertions(+), 7 deletions(-) 1001 1002antirez in commit de0ae56c: 1003 Tests for XGROUP CREATE MKSTREAM. 1004 1 file changed, 11 insertions(+) 1005 1006antirez in commit 56c3dfa1: 1007 Fix XGROUP CREATE MKSTREAM handling of . 1008 1 file changed, 7 insertions(+), 2 deletions(-) 1009 1010antirez in commit 2687f228: 1011 Process MKSTREAM option of XGROUP CREATE at a later time. 1012 1 file changed, 28 insertions(+), 17 deletions(-) 1013 1014zhaozhao.zz in commit cfbaf8f1: 1015 Scripting & Streams: some commands need right flags 1016 1 file changed, 5 insertions(+), 5 deletions(-) 1017 1018antirez in commit 4e4099b9: 1019 XGROUP CREATE: MKSTREAM option for automatic stream creation. 1020 1 file changed, 29 insertions(+), 5 deletions(-) 1021 1022zhaozhao.zz in commit 6dd4d864: 1023 Streams: Tests modified XSTREAM -> XSETID 1024 1 file changed, 2 insertions(+), 2 deletions(-) 1025 1026zhaozhao.zz in commit 3aff0e8c: 1027 Streams: rewrite empty streams with certain lastid 1028 1 file changed, 1 insertion(+), 1 deletion(-) 1029 1030antirez in commit 880b563e: 1031 Tests modified to use XADD MAXLEN 0 + XSETID. 1032 1 file changed, 12 insertions(+), 26 deletions(-) 1033 1034antirez in commit 83c87835: 1035 Streams: rewrite empty streams with XADD MAXLEN 0. Use XSETID. 1036 1 file changed, 18 insertions(+), 12 deletions(-) 1037 1038antirez in commit fd22e3ac: 1039 XSETID: accept IDs based on last entry. 1040 1 file changed, 18 insertions(+), 5 deletions(-) 1041 1042antirez in commit dfab3cba: 1043 Streams: XSTREAM SETID -> XSETID. 1044 3 files changed, 17 insertions(+), 67 deletions(-) 1045 1046zhaozhao.zz in commit a3fb28ed: 1047 Streams: rewrite id in XSTREAM CREATE * 1048 1 file changed, 4 insertions(+) 1049 1050zhaozhao.zz in commit f4b4db13: 1051 Streams: add tests for aof rewrite 1052 1 file changed, 23 insertions(+) 1053 1054zhaozhao.zz in commit d22f1ef0: 1055 Stream & AOF: rewrite stream in correct way 1056 1 file changed, 32 insertions(+), 16 deletions(-) 1057 1058zhaozhao.zz in commit 6455274d: 1059 Streams: add tests for XSTREAM command 1060 1 file changed, 39 insertions(+) 1061 1062zhaozhao.zz in commit 0edbe953: 1063 Streams: add a new command XTREAM 1064 3 files changed, 67 insertions(+) 1065 1066Hamid Alaei in commit 9714bba2: 1067 fix timer context selected database 1068 1 file changed, 3 insertions(+), 1 deletion(-) 1069 1070antirez in commit eb53f15a: 1071 Make comment about nack->consumer test for minidle more obvious. 1072 1 file changed, 4 insertions(+), 2 deletions(-) 1073 1074antirez in commit a77f836e: 1075 Streams: use propagate_last_id itself as streamPropagateGroupID trigger. 1076 1 file changed, 2 insertions(+), 2 deletions(-) 1077 1078antirez in commit 0f0610eb: 1079 Streams: better naming: lastid_updated -> propagate_last_id. 1080 1 file changed, 6 insertions(+), 6 deletions(-) 1081 1082zhaozhao.zz in commit a745e423: 1083 Streams: panic if streamID invalid after check, should not be possible. 1084 1 file changed, 2 insertions(+), 1 deletion(-) 1085 1086zhaozhao.zz in commit 9974be13: 1087 Streams: propagate lastid in XCLAIM when it has effect 1088 1 file changed, 13 insertions(+), 6 deletions(-) 1089 1090zhaozhao.zz in commit 69a628d0: 1091 Streams: XCLAIM ignore minidle if NACK is created by FORCE 1092 1 file changed, 4 insertions(+), 2 deletions(-) 1093 1094zhaozhao.zz in commit a04b43c7: 1095 Streams: bugfix XCLAIM should propagate group name not consumer name 1096 1 file changed, 1 insertion(+), 1 deletion(-) 1097 1098Sergey Chupov in commit 8977a90c: 1099 fixed typos in readme 1100 1 file changed, 2 insertions(+), 2 deletions(-) 1101 1102antirez in commit 3a745674: 1103 redis.conf typo fixed: ingore -> ignore. 1104 1 file changed, 1 insertion(+), 1 deletion(-) 1105 1106antirez in commit 22770d76: 1107 Rax: radix tree updated to latest version from antirez/rax. 1108 2 files changed, 233 insertions(+), 68 deletions(-) 1109 1110antirez in commit fbac534f: 1111 Test: avoid time related false positive in RESTORE test. 1112 1 file changed, 1 insertion(+), 1 deletion(-) 1113 1114antirez in commit 49872337: 1115 LOLWUT: capitalize Nees. 1116 1 file changed, 1 insertion(+), 1 deletion(-) 1117 1118antirez in commit 80c471f5: 1119 Test: cgroup propagation test also for NOACK variant. 1120 1 file changed, 39 insertions(+), 29 deletions(-) 1121 1122antirez in commit 8defa5da: 1123 Test: consumer group last ID slave propagation test. 1124 1 file changed, 39 insertions(+) 1125 1126zhaozhao.zz in commit e1e3eaca: 1127 Avoid recreate write handler for protected client. 1128 1 file changed, 4 insertions(+) 1129 1130antirez in commit b501fd5d: 1131 Fix propagation of consumer groups last ID. 1132 3 files changed, 56 insertions(+), 9 deletions(-) 1133 1134 1135================================================================================ 1136Redis 5.0-rc6 Released Wed Oct 10 11:03:54 CEST 2018 1137================================================================================ 1138 1139Upgrade urgency HIGH: Many bugs fixed especially in the context of streams. 1140 1141This is probably the last release candidate of Redis 5. The Redis 5 GA version 1142will be released 17th of October. The main highlights of this release are: 1143 1144* Critical AOF bug, as old as AOF itself: if an open MULTI/EXEC block is at 1145 the end of the AOF file, Redis would still read the half-transaction when 1146 reloading back the AOF. 1147* The slave name was removed from logs and documentation, now replica is used 1148 instead. 1149* LOLWUT command added. 1150* New modules APIs: Disable Redis Cluster redirection. 1151* New modules APIs: Sorted dictionaries data type. 1152* Modules APIs fixes: timer / cluster messages callback now can call RM_Call(). 1153* Fix for #5024 - commandstats for multi-exec were logged as EXEC. 1154* A number of optimizations and fixes for the stream data type. 1155* Many other stability improvements. 1156 1157This is the list of comments and contributors: 1158 1159antirez in commit 9a6fa7d0: 1160 changelog.tcl: get optional argument for number of commits. 1161 1 file changed, 8 insertions(+), 3 deletions(-) 1162 1163antirez in commit 101e419f: 1164 Free protected clients asynchronously. 1165 1 file changed, 7 insertions(+) 1166 1167antirez in commit 726debb8: 1168 Actually use the protectClient() API where needed. 1169 2 files changed, 8 insertions(+), 9 deletions(-) 1170 1171antirez in commit 0b87f78a: 1172 Introduce protectClient() + some refactoring. 1173 2 files changed, 60 insertions(+), 18 deletions(-) 1174 1175zhaozhao.zz in commit 6aa8ac70: 1176 debug: avoid free client unexpectedly when reload & loadaof 1177 1 file changed, 8 insertions(+), 2 deletions(-) 1178 1179antirez in commit 48040b02: 1180 aof.c: improve indentation and change warning message. 1181 1 file changed, 11 insertions(+), 4 deletions(-) 1182 1183zhaozhao.zz in commit 7cc20569: 1184 AOF: discard if we lost EXEC when loading aof 1185 2 files changed, 14 insertions(+), 3 deletions(-) 1186 1187antirez in commit 2007d30c: 1188 Refactoring of XADD / XTRIM MAXLEN rewriting. 1189 1 file changed, 15 insertions(+), 22 deletions(-) 1190 1191zhaozhao.zz in commit 6a298110: 1192 Streams: add test cases for XADD/XTRIM maxlen 1193 1 file changed, 46 insertions(+) 1194 1195zhaozhao.zz in commit 041161b7: 1196 Streams: propagate specified MAXLEN instead of approximated 1197 1 file changed, 35 insertions(+), 6 deletions(-) 1198 1199zhaozhao.zz in commit f04d799b: 1200 Streams: reset approx_maxlen in every maxlen loop 1201 1 file changed, 2 insertions(+) 1202 1203zhaozhao.zz in commit affd9365: 1204 Streams: XTRIM will return an error if MAXLEN with a count < 0 1205 1 file changed, 6 insertions(+), 1 deletion(-) 1206 1207zhaozhao.zz in commit 4c405ad0: 1208 Streams: propagate original MAXLEN argument in XADD context 1209 1 file changed, 3 insertions(+), 12 deletions(-) 1210 1211antirez in commit 5c6d4b4a: 1212 Fix typo in replicationCron() comment. 1213 1 file changed, 1 insertion(+), 1 deletion(-) 1214 1215antirez in commit a67a8dbf: 1216 Fix typo in design comment of bio.c. 1217 1 file changed, 1 insertion(+), 1 deletion(-) 1218 1219antirez in commit c4ab5a05: 1220 xclaimCommand(): fix comment typos. 1221 1 file changed, 2 insertions(+), 2 deletions(-) 1222 1223antirez in commit dc0b628a: 1224 streamAppendItem(): Update the radix tree pointer only if changed. 1225 1 file changed, 2 insertions(+), 1 deletion(-) 1226 1227antirez in commit 4566fbc7: 1228 Listpack: optionally force reallocation on inserts. 1229 1 file changed, 20 insertions(+) 1230 1231antirez in commit 5eca170c: 1232 Fix printf type mismatch in genRedisInfoString(). 1233 1 file changed, 1 insertion(+), 1 deletion(-) 1234 1235antirez in commit 260b53a2: 1236 streamIteratorRemoveEntry(): set back lp only if pointer changed. 1237 1 file changed, 2 insertions(+), 1 deletion(-) 1238 1239zhaozhao.zz in commit 5d12f9d9: 1240 Streams: update listpack with new pointer in XDEL 1241 1 file changed, 3 insertions(+) 1242 1243zhaozhao.zz in commit 6b7ad838: 1244 bugfix: replace lastcmd with cmd when rewrite BRPOPLPUSH as RPOPLPUSH 1245 1 file changed, 1 insertion(+), 1 deletion(-) 1246 1247Oran Agra in commit 3454a043: 1248 script cache memory in INFO and MEMORY includes both script code and overheads 1249 2 files changed, 3 insertions(+), 3 deletions(-) 1250 1251Oran Agra in commit d6aeca86: 1252 fix #5024 - commandstats for multi-exec were logged as EXEC. 1253 2 files changed, 63 insertions(+), 2 deletions(-) 1254 1255antirez in commit a996b2a2: 1256 Fix XINFO comment for consistency. 1257 1 file changed, 1 insertion(+), 1 deletion(-) 1258 1259Bruce Merry in commit 1a8447b6: 1260 Fix invalid use of sdsZmallocSize on an embedded string 1261 1 file changed, 1 insertion(+), 1 deletion(-) 1262 1263Bruce Merry in commit 8dde46ad: 1264 Fix incorrect memory usage accounting in zrealloc 1265 3 files changed, 24 insertions(+), 2 deletions(-) 1266 1267Hamid Alaei in commit b362a1b7: 1268 fix dict get on not found 1269 1 file changed, 1 insertion(+), 1 deletion(-) 1270 1271antirez in commit 55e9df8a: 1272 Try to avoid issues with GCC pragmas and older compilers. 1273 1 file changed, 7 insertions(+), 4 deletions(-) 1274 1275antirez in commit b0d22702: 1276 Modules: hellodict example WIP #3: KEYRANGE. 1277 1 file changed, 40 insertions(+) 1278 1279antirez in commit af2f6682: 1280 Modules: Modules: dictionary API WIP #13: Compare API exported. 1281 2 files changed, 6 insertions(+) 1282 1283antirez in commit f9a3e6ef: 1284 Modules: Modules: dictionary API WIP #12: DictCompare API. 1285 1 file changed, 8 insertions(+) 1286 1287antirez in commit 01e0341a: 1288 Modules: Modules: dictionary API WIP #11: DictCompareC API. 1289 1 file changed, 18 insertions(+) 1290 1291antirez in commit f9b3ce9a: 1292 Modules: hellodict example WIP #1: GET command. 1293 1 file changed, 18 insertions(+) 1294 1295antirez in commit 36e66d86: 1296 Modules: hellodict example WIP #1: SET command. 1297 1 file changed, 74 insertions(+) 1298 1299antirez in commit e33fdbe8: 1300 Modules: remove useless defines in hellotimer.c 1301 2 files changed, 6 insertions(+), 4 deletions(-) 1302 1303antirez in commit 1c8b2248: 1304 Modules: fix top comment of hellotimer.c 1305 1 file changed, 1 insertion(+), 1 deletion(-) 1306 1307Guy Korland in commit 7ded552d: 1308 add missing argument to function doc 1309 1 file changed, 1 insertion(+), 1 deletion(-) 1310 1311Pavel Skuratovich in commit f92b3273: 1312 Fix typo in comment 1313 1 file changed, 1 insertion(+), 1 deletion(-) 1314 1315antirez in commit 57b6c343: 1316 Modules: dictionary API WIP #10: export API to modules. 1317 2 files changed, 60 insertions(+) 1318 1319antirez in commit 3f82e59c: 1320 Modules: dictionary API WIP #9: iterator returning string object. 1321 1 file changed, 23 insertions(+), 6 deletions(-) 1322 1323antirez in commit 6a73aca3: 1324 Modules: dictionary API WIP #8: Iterator next/prev. 1325 1 file changed, 42 insertions(+) 1326 1327antirez in commit ef8413db: 1328 Modules: dictionary API WIP #7: don't store the context. 1329 1 file changed, 7 insertions(+), 8 deletions(-) 1330 1331antirez in commit 05579e38: 1332 Modules: dictionary API WIP #6: implement automatic memory management. 1333 1 file changed, 21 insertions(+), 7 deletions(-) 1334 1335antirez in commit 11c53f8c: 1336 Modules: dictionary API work in progress #5: rename API for consistency. 1337 1 file changed, 25 insertions(+), 25 deletions(-) 1338 1339antirez in commit 0bd7091b: 1340 Modules: change RedisModuleString API to allow NULL context. 1341 1 file changed, 33 insertions(+), 12 deletions(-) 1342 1343antirez in commit 5fc16f17: 1344 Modules: dictionary API work in progress #4: reseek API. 1345 1 file changed, 25 insertions(+), 6 deletions(-) 1346 1347antirez in commit 45b7f779: 1348 Modules: dictionary API work in progress #3: Iterator creation. 1349 1 file changed, 41 insertions(+), 1 deletion(-) 1350 1351antirez in commit 8576b0ae: 1352 Modules: dictionary API work in progress #2: Del API. 1353 1 file changed, 17 insertions(+), 2 deletions(-) 1354 1355antirez in commit 4b0fa7a7: 1356 Modules: dictionary API work in progress #1. 1357 2 files changed, 95 insertions(+), 1 deletion(-) 1358 1359antirez in commit 28210760: 1360 Module cluster flags: use RM_SetClusterFlags() in the example. 1361 2 files changed, 11 insertions(+) 1362 1363antirez in commit 18c5ab93: 1364 Module cluster flags: add RM_SetClusterFlags() API. 1365 3 files changed, 33 insertions(+) 1366 1367antirez in commit 4ce6bff2: 1368 Module cluster flags: add hooks for NO_FAILOVER flag. 1369 1 file changed, 4 insertions(+), 2 deletions(-) 1370 1371antirez in commit 2ba52889: 1372 Module cluster flags: add hooks for NO_REDIRECTION flag. 1373 3 files changed, 14 insertions(+), 4 deletions(-) 1374 1375antirez in commit 6a39ece6: 1376 Module cluster flags: initial vars / defines added. 1377 5 files changed, 20 insertions(+) 1378 1379antirez in commit 0ff35370: 1380 Modules: rename the reused static client to something more general. 1381 1 file changed, 10 insertions(+), 8 deletions(-) 1382 1383antirez in commit 2d11ee95: 1384 Modules: associate a fake client to timer context callback. 1385 1 file changed, 2 insertions(+) 1386 1387antirez in commit 851b2ed3: 1388 Modules: associate a fake client to cluster message context callback. 1389 1 file changed, 2 insertions(+) 1390 1391artix in commit 148e4911: 1392 Cluster Manager: clusterManagerFixOpenSlot now counts node's keys in slot if node is neither migrating nor importing. 1393 1 file changed, 20 insertions(+), 1 deletion(-) 1394 1395Guy Korland in commit 8afca145: 1396 No need to return "OK" 1397 1 file changed, 1 insertion(+), 1 deletion(-) 1398 1399Guy Korland in commit 9a278db2: 1400 typo fix 1401 1 file changed, 1 insertion(+), 1 deletion(-) 1402 1403antirez in commit 26479036: 1404 Revert "fix repeat argument issue and reduce unnessary loop times for redis-cli." 1405 1 file changed, 7 insertions(+), 12 deletions(-) 1406 1407Guy Korland in commit 27b7fb5a: 1408 Fix few typos 1409 1 file changed, 10 insertions(+), 10 deletions(-) 1410 1411Guy Korland in commit 233aa2d3: 1412 RedisModule_HashSet call must end with NULL 1413 1 file changed, 3 insertions(+), 1 deletion(-) 1414 1415antirez in commit a8494072: 1416 Sentinel: document how to undo a renamed command. 1417 1 file changed, 6 insertions(+), 1 deletion(-) 1418 1419antirez in commit 6c8a8f2e: 1420 LOLWUT: split the command from version-specific implementations. 1421 3 files changed, 297 insertions(+), 241 deletions(-) 1422 1423antirez in commit 5c758406: 1424 Slave removal: add a few forgotten aliases for CONFIG SET. 1425 1 file changed, 10 insertions(+) 1426 1427antirez in commit 2da823c4: 1428 LOLWUT: add Redis version in the output. 1429 1 file changed, 3 insertions(+), 1 deletion(-) 1430 1431antirez in commit bfcba420: 1432 LOLWUT: Ness -> Nees. 1433 1 file changed, 1 insertion(+), 1 deletion(-) 1434 1435antirez in commit efed898a: 1436 LOLWUT: Limit maximum CPU effort. 1437 1 file changed, 5 insertions(+) 1438 1439antirez in commit eb0fbd71: 1440 LOLWUT: change padding conditional to a more direct one. 1441 1 file changed, 1 insertion(+), 1 deletion(-) 1442 1443Slobodan Mišković in commit ed08feb7: 1444 Fix spelling descrive -> describe 1445 1 file changed, 1 insertion(+), 1 deletion(-) 1446 1447antirez in commit 2ffb4413: 1448 LOLWUT: fix crash when col < 2. 1449 1 file changed, 1 insertion(+), 1 deletion(-) 1450 1451antirez in commit 55dae693: 1452 LOLWUT: fix structure typo in comment. 1453 1 file changed, 1 insertion(+), 1 deletion(-) 1454 1455antirez in commit 9b3098b9: 1456 LOLWUT: Fix license copyright year. 1457 1 file changed, 1 insertion(+), 1 deletion(-) 1458 1459antirez in commit 263dbadc: 1460 LOLWUT: increase the translation factor. 1461 1 file changed, 2 insertions(+), 2 deletions(-) 1462 1463antirez in commit a622f6c0: 1464 LOLWUT: change default size to fit a normal terminal better. 1465 1 file changed, 6 insertions(+), 6 deletions(-) 1466 1467antirez in commit 38b0d25a: 1468 LOLWUT: wrap it into a proper command. 1469 4 files changed, 40 insertions(+), 15 deletions(-) 1470 1471antirez in commit 34ebd898: 1472 LOLWUT: draw Schotter by Georg Nees. 1473 1 file changed, 47 insertions(+), 3 deletions(-) 1474 1475antirez in commit 46286e64: 1476 LOLWUT: draw rotated squares using trivial trigonometry. 1477 1 file changed, 44 insertions(+) 1478 1479antirez in commit 2d4143fd: 1480 LOLWUT: draw lines using Bresenham algorithm. 1481 1 file changed, 26 insertions(+), 2 deletions(-) 1482 1483antirez in commit 3546d9ce: 1484 LOLWUT: Rendering of the virtual canvas to a string. 1485 1 file changed, 78 insertions(+), 7 deletions(-) 1486 1487antirez in commit b404a6ce: 1488 LOLWUT: show the output verbatim in redis-cli. 1489 1 file changed, 1 insertion(+) 1490 1491antirez in commit e30ba94f: 1492 LOLWUT: canvas structure and BSD license on top. 1493 1 file changed, 46 insertions(+) 1494 1495antirez in commit 9c771145: 1496 LOLWUT: Emit Braille unicode according to pixel pattern. 1497 1 file changed, 23 insertions(+) 1498 1499Jakub Vrana in commit 4a1d6c7d: 1500 Slave removal: capitalize Replica 1501 2 files changed, 5 insertions(+), 5 deletions(-) 1502 1503antirez in commit 72e0368a: 1504 Slave removal: remove slave from integration tests descriptions. 1505 8 files changed, 36 insertions(+), 36 deletions(-) 1506 1507antirez in commit c7841c2b: 1508 Slave removal: remove slave from top-level tests descriptions. 1509 3 files changed, 12 insertions(+), 12 deletions(-) 1510 1511antirez in commit 1b9b19ba: 1512 Slave removal: remove slave from object.c. 1513 1 file changed, 1 insertion(+), 1 deletion(-) 1514 1515antirez in commit 7da266e6: 1516 Slave removal: remove slave from the README. 1517 1 file changed, 7 insertions(+), 7 deletions(-) 1518 1519antirez in commit 93d803c9: 1520 Slave removal: server.c logs fixed. 1521 1 file changed, 5 insertions(+), 5 deletions(-) 1522 1523antirez in commit 89434032: 1524 Slave removal: remove slave from sentinel.conf when possible. 1525 1 file changed, 18 insertions(+), 18 deletions(-) 1526 1527antirez in commit 7673d88d: 1528 Slave removal: replace very few things in Sentinel. 1529 1 file changed, 12 insertions(+), 8 deletions(-) 1530 1531antirez in commit f1de29b3: 1532 Slave removal: scripting.c logs and other stuff fixed. 1533 1 file changed, 6 insertions(+), 2 deletions(-) 1534 1535antirez in commit 53fe558e: 1536 Slave removal: replication.c logs fixed. 1537 1 file changed, 35 insertions(+), 35 deletions(-) 1538 1539antirez in commit c92b02dd: 1540 Slave removal: networking.c logs fixed. 1541 1 file changed, 5 insertions(+), 5 deletions(-) 1542 1543antirez in commit be76ed0c: 1544 Slave removal: blocked.c logs fixed. 1545 1 file changed, 1 insertion(+), 1 deletion(-) 1546 1547antirez in commit 3fd73151: 1548 Slave removal: Make obvious in redis.conf what a replica is. 1549 1 file changed, 5 insertions(+) 1550 1551antirez in commit a22168e4: 1552 Slave removal: slave mode -> replica mode text in redis-cli. 1553 1 file changed, 1 insertion(+), 1 deletion(-) 1554 1555antirez in commit 0e222fbe: 1556 Slave removal: fix typo of replicaof. 1557 1 file changed, 1 insertion(+), 1 deletion(-) 1558 1559antirez in commit 34a5615e: 1560 Slave removal: slave -> replica in redis.conf and output buffer option. 1561 3 files changed, 132 insertions(+), 129 deletions(-) 1562 1563antirez in commit 1d2fcf6f: 1564 Slave removal: Convert cluster.c log messages and command names. 1565 1 file changed, 12 insertions(+), 11 deletions(-) 1566 1567antirez in commit 2546158d: 1568 Slave removal: config.c converted + config rewriting hacks. 1569 1 file changed, 117 insertions(+), 38 deletions(-) 1570 1571antirez in commit c0952c0d: 1572 Slave removal: redis-cli --slave -> --replica. 1573 1 file changed, 3 insertions(+), 1 deletion(-) 1574 1575antirez in commit 1f37f1dd: 1576 Slave removal: SLAVEOF -> REPLICAOF. SLAVEOF is now an alias. 1577 3 files changed, 4 insertions(+), 3 deletions(-) 1578 1579Amin Mesbah in commit 7928f578: 1580 Use geohash limit defines in constraint check 1581 1 file changed, 2 insertions(+), 2 deletions(-) 1582 1583Jeffrey Lovitz in commit bb2bed78: 1584 CLI Help text loop verifies arg count 1585 1 file changed, 1 insertion(+), 1 deletion(-) 1586 1587youjiali1995 in commit 246980d0: 1588 sentinel: fix randomized sentinelTimer. 1589 1 file changed, 1 insertion(+), 3 deletions(-) 1590 1591youjiali1995 in commit fa7de8c4: 1592 bio: fix bioWaitStepOfType. 1593 1 file changed, 3 insertions(+), 3 deletions(-) 1594 1595Weiliang Li in commit 7642f9d5: 1596 fix usage typo in redis-cli 1597 1 file changed, 1 insertion(+), 1 deletion(-) 1598 1599================================================================================ 1600Redis 5.0 RC5 Released Thu Sep 06 12:54:29 CEST 2018 1601================================================================================ 1602 1603Upgrade urgency HIGH: Several imporant bugs fixed. 1604 1605Hi all, 1606 1607This is the release candidate number five, and has a lot of bug fixes inside, 1608together with a few big changes to the Redis behavior from the point of view 1609of replication of scripts and handling of the maxmemory directive in slaves. 1610Make sure to read the whole list! 1611 1612* BREAKING BEHAVIOR: Slaves now ignore maxmemory by default. 1613* BREAKING BEHAVIOR: Now scripts are always replicated for their effects, and 1614 never sending the script itself to slaves/AOF. 1615* Improvement: Big pipelining performances improved significantly. 1616* Fix: Rewrite BRPOPLPUSH as RPOPLPUSH to propagate. 1617* Fix: False positives in tests. 1618* Fix: Certain command flags were modified because not correct. 1619* Fix: Fix blocking XREAD for streams that are empty. 1620* Improvement: Allow scripts to timeout on slaves as well. 1621* Fix: Different corner cases due to CLIENT PAUSE are now fixed. 1622* Improvement: Optimize parsing large bulk greater than 32k. 1623* Fix: Propagate read-only scripts as SCRIPT LOAD, not as EVAL. 1624 1625The following is the list of commits, so that you can read the details and 1626check the credits of the commits. 1627 1628antirez in commit 1d1bf7f0: 1629 Document that effects replication is Redis 5 default. 1630 1 file changed, 8 insertions(+) 1631 1632antirez in commit cfd969c7: 1633 Fix scripting tests now that we default to commands repl. 1634 1 file changed, 8 insertions(+), 1 deletion(-) 1635 1636antirez in commit 3e1fb5ff: 1637 Use commands (effects) replication by default in scripts. 1638 3 files changed, 8 insertions(+), 1 deletion(-) 1639 1640antirez in commit c6c71abe: 1641 Safer script stop condition on OOM. 1642 1 file changed, 5 insertions(+), 2 deletions(-) 1643 1644antirez in commit dfbce91a: 1645 Propagate read-only scripts as SCRIPT LOAD. 1646 1 file changed, 16 insertions(+), 3 deletions(-) 1647 1648antirez in commit 1705e42e: 1649 Don't perform eviction when re-entering the event loop. 1650 1 file changed, 7 insertions(+), 2 deletions(-) 1651 1652antirez in commit a0dd6f82: 1653 Clarify why remaining may be zero in readQueryFromClient(). 1654 1 file changed, 2 insertions(+) 1655 1656zhaozhao.zz in commit 2eed31a5: 1657 networking: fix unexpected negative or zero readlen 1658 1 file changed, 1 insertion(+), 1 deletion(-) 1659 1660antirez in commit 37fb606c: 1661 Merge branch '5.0' of github.com:/antirez/redis into 5.0 1662zhaozhao.zz in commit 1898e6ce: 1663 networking: optimize parsing large bulk greater than 32k 1664 1 file changed, 13 insertions(+), 10 deletions(-) 1665 1666antirez in commit 82fc63d1: 1667 Unblocked clients API refactoring. See #4418. 1668 4 files changed, 33 insertions(+), 15 deletions(-) 1669 1670zhaozhao.zz in commit 839bb52c: 1671 if master is already unblocked, do not unblock it twice 1672 1 file changed, 1 insertion(+), 1 deletion(-) 1673 1674zhaozhao.zz in commit 2e1cd82d: 1675 fix multiple unblock for clientsArePaused() 1676 1 file changed, 3 insertions(+), 3 deletions(-) 1677 1678antirez in commit 17233080: 1679 Make pending buffer processing safe for CLIENT_MASTER client. 1680 3 files changed, 22 insertions(+), 13 deletions(-) 1681 1682antirez in commit 42bce87a: 1683 Test: processing of master stream in slave -BUSY state. 1684 1 file changed, 44 insertions(+) 1685 1686antirez in commit 8bf42f60: 1687 After slave Lua script leaves busy state, re-process the master buffer. 1688 2 files changed, 5 insertions(+), 2 deletions(-) 1689 1690antirez in commit c2b104c7: 1691 While the slave is busy, just accumulate master input. 1692 2 files changed, 6 insertions(+), 1 deletion(-) 1693 1694antirez in commit 7b75f4ae: 1695 Allow scripts to timeout even if from the master instance. 1696 1 file changed, 6 insertions(+), 11 deletions(-) 1697 1698antirez in commit adc4e031: 1699 Allow scripts to timeout on slaves as well. 1700 2 files changed, 10 insertions(+), 3 deletions(-) 1701 1702dejun.xdj in commit 20ec1f0c: 1703 Revise the comments of latency command. 1704 1 file changed, 2 insertions(+), 1 deletion(-) 1705 1706Chris Lamb in commit 8e5423eb: 1707 Correct "did not received" -> "did not receive" typos/grammar. 1708 6 files changed, 10 insertions(+), 10 deletions(-) 1709 1710zhaozhao.zz in commit 395063d7: 1711 remove duplicate bind in sentinel.conf 1712 1 file changed, 10 deletions(-) 1713 1714Salvatore Sanfilippo in commit b221ca41: 1715 Merge pull request #5300 from SaschaRoland/xread-block-5299 1716Sascha Roland in commit eea0d3c5: 1717 #5299 Fix blocking XREAD for streams that ran dry 1718 1 file changed, 2 insertions(+), 2 deletions(-) 1719 1720antirez in commit 4cb9ee11: 1721 Add maxmemory slave behavior change in the change log. 1722 1 file changed, 8 insertions(+) 1723 1724zhaozhao.zz in commit 5ad888ba: 1725 Supplement to PR #4835, just take info/memory/command as random commands 1726 1 file changed, 3 insertions(+), 3 deletions(-) 1727 1728zhaozhao.zz in commit d928487f: 1729 some commands' flags should be set correctly, issue #4834 1730 1 file changed, 14 insertions(+), 14 deletions(-) 1731 1732Oran Agra in commit af675f0a: 1733 Fix unstable tests on slow machines. 1734 3 files changed, 23 insertions(+), 17 deletions(-) 1735 1736antirez in commit f2cd16be: 1737 Document slave-ignore-maxmemory in redis.conf. 1738 1 file changed, 20 insertions(+) 1739 1740antirez in commit 02d729b4: 1741 Make slave-ignore-maxmemory configurable. 1742 1 file changed, 9 insertions(+) 1743 1744antirez in commit 447da44d: 1745 Introduce repl_slave_ignore_maxmemory flag internally. 1746 3 files changed, 7 insertions(+) 1747 1748antirez in commit 868b2925: 1749 Better variable meaning in processCommand(). 1750 1 file changed, 2 insertions(+), 2 deletions(-) 1751 1752antirez in commit 319f2ee6: 1753 Re-apply rebased #2358. 1754 1 file changed, 1 insertion(+), 1 deletion(-) 1755 1756zhaozhao.zz in commit 22c166da: 1757 block: format code 1758 1 file changed, 2 insertions(+), 2 deletions(-) 1759 1760zhaozhao.zz in commit c03c5913: 1761 block: rewrite BRPOPLPUSH as RPOPLPUSH to propagate 1762 3 files changed, 5 insertions(+), 1 deletion(-) 1763 1764zhaozhao.zz in commit fcd5ef16: 1765 networking: make setProtocolError simple and clear 1766 1 file changed, 11 insertions(+), 13 deletions(-) 1767 1768zhaozhao.zz in commit 656e4b2f: 1769 networking: just move qb_pos instead of sdsrange in processInlineBuffer 1770 1 file changed, 2 insertions(+), 3 deletions(-) 1771 1772zhaozhao.zz in commit 2c7972ce: 1773 networking: just return C_OK if multibulk processing saw a <= 0 length. 1774 1 file changed, 2 insertions(+), 5 deletions(-) 1775 1776zhaozhao.zz in commit 1203a04f: 1777 adjust qbuf to 26 in test case for client list 1778 1 file changed, 1 insertion(+), 1 deletion(-) 1779 1780zhaozhao.zz in commit aff86fa1: 1781 pipeline: do not sdsrange querybuf unless all commands processed 1782 2 files changed, 48 insertions(+), 40 deletions(-) 1783 1784Chris Lamb in commit 45a6c5be: 1785 Use SOURCE_DATE_EPOCH over unreproducible uname + date calls. 1786 1 file changed, 3 insertions(+) 1787 1788Chris Lamb in commit 186df148: 1789 Make some defaults explicit in the sentinel.conf for package maintainers 1790 1 file changed, 25 insertions(+) 1791 1792dejun.xdj in commit b59f04a0: 1793 Streams: ID of xclaim command starts from the sixth argument. 1794 1 file changed, 1 insertion(+), 1 deletion(-) 1795 1796shenlongxing in commit a3f2437b: 1797 Fix stream command paras 1798 2 files changed, 7 insertions(+), 7 deletions(-) 1799 1800antirez in commit df911235: 1801 Fix AOF comment to report the current behavior. 1802 1 file changed, 3 insertions(+), 1 deletion(-) 1803 1804 1805 1806================================================================================ 1807Redis 5.0 RC4 Released Fri Aug 03 13:51:02 CEST 2018 1808================================================================================ 1809 1810Upgrade urgency 1811 1812 HIGH: Many non critical but important issues fixed. 1813 CRITICAL for Stream users: Many important bugs fixed. 1814 1815Hi all, welcome to Redis 5.0 RC4. 1816 1817This release is a huge step forward in Redis 5 maturity and fixes a number 1818of issues. It also provides interesting improvements. Here I'll summarize 1819the biggest one, but laster you can find the full list of commits: 1820 1821Fixes: 1822 1823* A number of fixes related to Streams: stability and correctnes. 1824* Fix dbRandomKey() potential infinite loop. 1825* Improve eviction LFU/LRU when keys are created by INCR commands family. 1826* Active defragmentation is now working on Redis 5. 1827* Fix corner case in Redis CLuster / Sentinel failover, by resetting the 1828 disconnection time with master in a more appropriate place. 1829* Use a private version of localtime() to avoid potential deadlocks. 1830* Different redis-cli non critical fixes. 1831* Fix rare replication stream corruption with disk-based replication. 1832 1833Improvements: 1834 1835* Sentinel: add an option to deny online script reconfiguration. 1836* Improved RESTORE command. 1837* Sentinel command renaming: allows to use Sentinel with Redis instances 1838 that have non standard command names. 1839* CLIENT ID and CLIENT UNBLOCK. 1840* CLIENT LIST now supports a TYPE option. 1841* redis-cli --cluster now supports authentication. 1842* redis-trib is now deprecated (use redis-cli --cluster). 1843* Better slaves output buffers efficiency. 1844* Faster INFO when there are many clients connected. 1845* Dynamic HZ feature. 1846* Improvements in what the MEMORY command is able to report. 1847* Add year in log. (WARNING: may be incompatible with log scraping tools) 1848* Lazy freeing now works even when values are overwritten (for instance SET). 1849* Faster ZADD when elements scores are updated. 1850* Improvements to the test suite, including many new options. 1851 1852antirez in commit a4d1201e: 1853 Test suite: add --loop option. 1854 1 file changed, 12 insertions(+), 5 deletions(-) 1855 1856antirez in commit 273d8191: 1857 Test suite: new --stop option. 1858 1 file changed, 13 insertions(+), 4 deletions(-) 1859 1860antirez in commit fbbcc6a6: 1861 Streams IDs parsing refactoring. 1862 1 file changed, 32 insertions(+), 17 deletions(-) 1863 1864antirez in commit 70c4bcb7: 1865 Test: new sorted set skiplist order consistency. 1866 1 file changed, 26 insertions(+) 1867 1868antirez in commit 63addc5c: 1869 Fix zslUpdateScore() edge case. 1870 1 file changed, 2 insertions(+), 2 deletions(-) 1871 1872antirez in commit 724740cc: 1873 More commenting of zslUpdateScore(). 1874 1 file changed, 2 insertions(+) 1875 1876antirez in commit ddc87eef: 1877 Explain what's the point of zslUpdateScore() in top comment. 1878 1 file changed, 5 insertions(+) 1879 1880antirez in commit 741f29ea: 1881 Remove old commented zslUpdateScore() from source. 1882 1 file changed, 13 deletions(-) 1883 1884antirez in commit 20116836: 1885 Optimize zslUpdateScore() as asked in #5179. 1886 1 file changed, 44 insertions(+) 1887 1888antirez in commit 8c297e8b: 1889 zsetAdd() refactored adding zslUpdateScore(). 1890 1 file changed, 18 insertions(+), 7 deletions(-) 1891 1892dejun.xdj in commit bd2f3f6b: 1893 Streams: rearrange the usage of '-' and '+' IDs in stream commands. 1894 1 file changed, 13 insertions(+), 13 deletions(-) 1895 1896dejun.xdj in commit c0c06b84: 1897 Streams: add mmid_supp argument in streamParseIDOrReply(). 1898 1 file changed, 6 insertions(+), 2 deletions(-) 1899 1900antirez in commit ab237a8e: 1901 Minor improvements to PR #5187. 1902 2 files changed, 13 insertions(+), 6 deletions(-) 1903 1904Oran Agra in commit 1ce3cf7a: 1905 test suite conveniency improvements 1906 3 files changed, 79 insertions(+), 3 deletions(-) 1907 1908Oran Agra in commit 36622899: 1909 add DEBUG LOG, to to assist test suite debugging 1910 1 file changed, 4 insertions(+) 1911 1912antirez in commit 83d4311a: 1913 Cluster cron announce IP minor refactoring. 1914 1 file changed, 6 insertions(+), 3 deletions(-) 1915 1916shenlongxing in commit a633f8e1: 1917 Fix cluster-announce-ip memory leak 1918 1 file changed, 3 insertions(+), 2 deletions(-) 1919 1920antirez in commit 24c45538: 1921 Tranfer -> transfer typo fixed. 1922 1 file changed, 1 insertion(+), 1 deletion(-) 1923 1924zhaozhao.zz in commit c609f240: 1925 refactor dbOverwrite to make lazyfree work 1926 4 files changed, 27 insertions(+), 12 deletions(-) 1927 1928antirez in commit 9e971739: 1929 Refactoring: replace low-level checks with writeCommandsDeniedByDiskError(). 1930 2 files changed, 6 insertions(+), 13 deletions(-) 1931 1932antirez in commit 0e77cef0: 1933 Fix writeCommandsDeniedByDiskError() inverted return value. 1934 1 file changed, 2 insertions(+), 2 deletions(-) 1935 1936antirez in commit acfe9d13: 1937 Better top comment for writeCommandsDeniedByDiskError(). 1938 1 file changed, 8 insertions(+), 1 deletion(-) 1939 1940antirez in commit 4e933e00: 1941 Introduce writeCommandsDeniedByDiskError(). 1942 2 files changed, 24 insertions(+) 1943 1944WuYunlong in commit 41607dfd: 1945 Consider aof write error as well as rdb in lua script. 1946 1 file changed, 14 insertions(+), 4 deletions(-) 1947 1948Salvatore Sanfilippo in commit 1d073a64: 1949 Merge pull request #5168 from rpv-tomsk/issue-5033 1950Guy Korland in commit 2db31fd4: 1951 Few typo fixes 1952 1 file changed, 13 insertions(+), 13 deletions(-) 1953 1954antirez in commit 64242757: 1955 Add year in log. 1956 1 file changed, 1 insertion(+), 1 deletion(-) 1957 1958antirez in commit 50be4a1f: 1959 Document dynamic-hz in the example redis.conf. 1960 1 file changed, 16 insertions(+) 1961 1962antirez in commit 9a76472d: 1963 Make dynamic hz actually configurable. 1964 1 file changed, 9 insertions(+) 1965 1966antirez in commit a330d06c: 1967 Control dynamic HZ via server configuration. 1968 2 files changed, 13 insertions(+), 6 deletions(-) 1969 1970antirez in commit d42602ff: 1971 Dynamic HZ: adapt cron frequency to number of clients. 1972 2 files changed, 17 insertions(+), 5 deletions(-) 1973 1974antirez in commit 7b5f0223: 1975 Dynamic HZ: separate hz from the configured hz. 1976 3 files changed, 15 insertions(+), 9 deletions(-) 1977 1978antirez in commit 037b00de: 1979 Remove useless conditional from emptyDb(). 1980 1 file changed, 1 deletion(-) 1981 1982antirez in commit 0e97ae79: 1983 Make emptyDb() change introduced in #4852 simpler to read. 1984 1 file changed, 8 insertions(+), 3 deletions(-) 1985 1986zhaozhao.zz in commit f7740faf: 1987 optimize flushdb, avoid useless loops 1988 1 file changed, 5 insertions(+), 2 deletions(-) 1989 1990zhaozhao.zz in commit 0c008376: 1991 Streams: fix xdel memory leak 1992 1 file changed, 1 insertion(+) 1993 1994antirez in commit dc600a25: 1995 Example the magic +1 in migrateCommand(). 1996 1 file changed, 4 insertions(+) 1997 1998antirez in commit d6827ab6: 1999 Make changes of PR #5154 hopefully simpler. 2000 1 file changed, 10 insertions(+), 5 deletions(-) 2001 2002WuYunlong in commit 89ec1453: 2003 Do not migrate already expired keys. 2004 1 file changed, 6 insertions(+), 2 deletions(-) 2005 2006Pavel Rochnyack in commit cd25ed17: 2007 INFO CPU: higher precision of reported values 2008 1 file changed, 8 insertions(+), 8 deletions(-) 2009 2010antirez in commit 6bfb4745: 2011 Streams: refactoring of next entry seek in the iterator. 2012 1 file changed, 11 insertions(+), 7 deletions(-) 2013 2014zhaozhao.zz in commit 4724548e: 2015 Streams: skip master fileds only when we are going forward in streamIteratorGetID 2016 1 file changed, 8 insertions(+), 5 deletions(-) 2017 2018Oran Agra in commit 4b79fdf1: 2019 fix slave buffer test suite false positives 2020 1 file changed, 1 insertion(+), 1 deletion(-) 2021 2022antirez in commit a1e081f7: 2023 string2ll(): better commenting. 2024 1 file changed, 6 insertions(+) 2025 2026dsomeshwar in commit 8b4fe752: 2027 removing redundant check 2028 1 file changed, 3 deletions(-) 2029 2030antirez in commit 9e5bf047: 2031 Restore string2ll() to original version. 2032 1 file changed, 7 insertions(+), 2 deletions(-) 2033 2034Oran Agra in commit c2ecdcde: 2035 fix recursion typo in zmalloc_usable 2036 1 file changed, 1 insertion(+), 1 deletion(-) 2037 2038antirez in commit 4f742bd6: 2039 string2ll(): remove duplicated check for special case. 2040 1 file changed, 1 insertion(+), 6 deletions(-) 2041 2042antirez in commit a4efac00: 2043 string2ll(): test for NULL pointer in all the cases. 2044 1 file changed, 1 insertion(+), 1 deletion(-) 2045 2046antirez in commit 2c07c107: 2047 Change 42 to 1000 as warning level for cached scripts. 2048 1 file changed, 3 insertions(+), 3 deletions(-) 2049 2050Itamar Haber in commit 270903d6: 2051 Adds Lua overheads to MEMORY STATS, smartens the MEMORY DOCTOR 2052 3 files changed, 30 insertions(+), 4 deletions(-) 2053 2054Itamar Haber in commit faf3dbfc: 2055 Adds memory information about the script's cache to INFO 2056 3 files changed, 12 insertions(+) 2057 2058antirez in commit 49841a54: 2059 Fix merge errors. 2060 2 files changed, 7 deletions(-) 2061 2062antirez in commit 77a7ec72: 2063 Merge branch 'unstable' into 5.0 branch 2064antirez in commit 4ff47a0b: 2065 Top comment clientsCron(). 2066 1 file changed, 19 insertions(+), 4 deletions(-) 2067 2068antirez in commit aba68552: 2069 Clarify that clientsCronTrackExpansiveClients() indexes may jump ahead. 2070 1 file changed, 9 insertions(+), 1 deletion(-) 2071 2072antirez in commit be88c0b1: 2073 Rename INFO CLIENT max buffers field names for correctness. 2074 1 file changed, 2 insertions(+), 2 deletions(-) 2075 2076antirez in commit 0cf3794e: 2077 Fix wrong array index variable in getExpansiveClientsInfo(). 2078 1 file changed, 1 insertion(+), 1 deletion(-) 2079 2080antirez in commit ea3a20c5: 2081 Change INFO CLIENTS sections to report pre-computed max/min client buffers. 2082 1 file changed, 5 insertions(+), 5 deletions(-) 2083 2084antirez in commit 8f7e496b: 2085 Rename var in clientsCronTrackExpansiveClients() for clarity. 2086 1 file changed, 3 insertions(+), 3 deletions(-) 2087 2088antirez in commit 8d617596: 2089 Implement a function to retrieve the expansive clients mem usage. 2090 1 file changed, 12 insertions(+) 2091 2092antirez in commit 85a1b4f8: 2093 clientsCronTrackExpansiveClients() actual implementation. 2094 1 file changed, 14 insertions(+), 1 deletion(-) 2095 2096antirez in commit d4c5fc57: 2097 clientsCronTrackExpansiveClients() skeleton and ideas. 2098 1 file changed, 23 insertions(+) 2099 2100antirez in commit 1c95c075: 2101 Make vars used only by INFO CLIENTS local to the block. 2102 1 file changed, 1 insertion(+), 1 deletion(-) 2103 2104Salvatore Sanfilippo in commit 16b8d364: 2105 Merge pull request #4727 from kingpeterpaule/redis-fix-info-cli 2106antirez in commit 0aca977c: 2107 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2108antirez in commit 313b2240: 2109 In addReplyErrorLength() only panic when replying to slave. 2110 1 file changed, 4 insertions(+), 3 deletions(-) 2111 2112antirez in commit 6183f059: 2113 Refine comment in addReplyErrorLength() about replying to masters/slaves. 2114 1 file changed, 11 insertions(+) 2115 2116Salvatore Sanfilippo in commit 22e9321c: 2117 Merge pull request #5138 from oranagra/improve_defrag_test 2118Oran Agra in commit f89c93c8: 2119 make active defrag test more stable 2120 2 files changed, 6 insertions(+), 5 deletions(-) 2121 2122Salvatore Sanfilippo in commit 8213f64d: 2123 Merge pull request #5122 from trevor211/allowWritesWhenAofDisabled 2124Salvatore Sanfilippo in commit 46fd9278: 2125 Merge pull request #4237 from aspirewit/update-comment 2126antirez in commit 6201f7b4: 2127 Streams: better error when $ is given with XREADGROUP. 2128 1 file changed, 5 insertions(+), 2 deletions(-) 2129 2130Salvatore Sanfilippo in commit 4bff45c7: 2131 Merge pull request #5136 from 0xtonyxia/fix-xread-id-parse 2132antirez in commit afc7e08a: 2133 Panic when we are sending an error to our master/slave. 2134 1 file changed, 5 insertions(+) 2135 2136Salvatore Sanfilippo in commit e03358c0: 2137 Merge pull request #5135 from oranagra/rare_repl_corruption 2138dejun.xdj in commit 846cf12a: 2139 Streams: remove meaningless if condition. 2140 1 file changed, 1 insertion(+), 1 deletion(-) 2141 2142dejun.xdj in commit 6501b6bb: 2143 Streams: return an error message if using xreadgroup with '$' ID. 2144 1 file changed, 5 insertions(+) 2145 2146Oran Agra in commit d5559898: 2147 fix rare replication stream corruption with disk-based replication 2148 3 files changed, 18 insertions(+), 9 deletions(-) 2149 2150antirez in commit cefe21d2: 2151 dict.c: remove a few trailing spaces. 2152 1 file changed, 2 insertions(+), 2 deletions(-) 2153 2154Salvatore Sanfilippo in commit 4fc20992: 2155 Merge pull request #5128 from kingpeterpaule/remove-one-loop-in-freeMemoryIfNeeded 2156Salvatore Sanfilippo in commit 9fbd49bb: 2157 Merge pull request #5113 from 0xtonyxia/using-compare-func-instead 2158Salvatore Sanfilippo in commit cab39676: 2159 Merge pull request #5127 from oranagra/sds_req_type 2160antirez in commit f9c84d6d: 2161 Hopefully improve commenting of #5126. 2162 2 files changed, 22 insertions(+), 10 deletions(-) 2163 2164Salvatore Sanfilippo in commit e22a1218: 2165 Merge pull request #5126 from oranagra/slave_buf_memory_2 2166Salvatore Sanfilippo in commit 28dd8dd1: 2167 Merge pull request #5132 from soloestoy/propagate-xdel-correctly 2168Oran Agra in commit bf680b6f: 2169 slave buffers were wasteful and incorrectly counted causing eviction 2170 10 files changed, 182 insertions(+), 50 deletions(-) 2171 2172zhaozhao.zz in commit 73306c6f: 2173 Streams: correctly propagate xdel if needed 2174 1 file changed, 7 insertions(+), 3 deletions(-) 2175 2176antirez in commit 103c5a1a: 2177 Add a few comments to streamIteratorRemoveEntry(). 2178 1 file changed, 4 insertions(+) 2179 2180Salvatore Sanfilippo in commit a317f55d: 2181 Merge pull request #5131 from soloestoy/optimize-xdel 2182antirez in commit 185e0d9c: 2183 Modify XINFO field from last-id to last-generated-id. 2184 1 file changed, 1 insertion(+), 1 deletion(-) 2185 2186Salvatore Sanfilippo in commit 4215e74b: 2187 Merge pull request #5129 from soloestoy/xinfo-show-last-id 2188zhaozhao.zz in commit c9324f81: 2189 Streams: free lp if all elements are deleted 2190 1 file changed, 9 insertions(+), 4 deletions(-) 2191 2192paule in commit b6ce7d5d: 2193 Update dict.c 2194 1 file changed, 4 insertions(+), 2 deletions(-) 2195 2196zhaozhao.zz in commit b4ba5ac8: 2197 Streams: show last id for streams and groups 2198 1 file changed, 6 insertions(+), 2 deletions(-) 2199 2200peterpaule in commit 816fc6cb: 2201 remove one ineffective loop in dictGetSomeKeys. 2202 1 file changed, 1 insertion(+), 1 deletion(-) 2203 2204Oran Agra in commit b05a22e2: 2205 bugfix in sdsReqType creating 64bit sds headers on 32bit systems 2206 1 file changed, 3 insertions(+), 1 deletion(-) 2207 2208dejun.xdj in commit 491682a6: 2209 Streams: using streamCompareID() instead of direct compare in block.c. 2210 1 file changed, 1 insertion(+), 4 deletions(-) 2211 2212dejun.xdj in commit a2177cd2: 2213 Streams: add streamCompareID() declaration in stream.h. 2214 1 file changed, 1 insertion(+) 2215 2216dejun.xdj in commit 0484dbcf: 2217 Streams: using streamCompareID() instead of direct compare. 2218 1 file changed, 2 insertions(+), 6 deletions(-) 2219 2220WuYunlong in commit 2d4366c5: 2221 Accept write commands if persisting is disabled, event if we do have problems persisting on disk previously. 2222 1 file changed, 2 insertions(+), 1 deletion(-) 2223 2224Salvatore Sanfilippo in commit ab33bcd3: 2225 Merge pull request #5120 from andrewsensus/leap-year-comment-patch-1 2226antirez in commit 2352a519: 2227 Test: XDEL fuzz testing. Remove and check stage. 2228 1 file changed, 15 insertions(+) 2229 2230antirez in commit 3d7d20b7: 2231 Test: fix lshuffle by providing the "K" combinator. 2232 1 file changed, 2 insertions(+) 2233 2234antirez in commit 967ad364: 2235 Test: add lshuffle in the Tcl utility functions set. 2236 1 file changed, 14 insertions(+) 2237 2238antirez in commit d6efd5fc: 2239 Test: XDEL fuzz testing, stream creation. 2240 1 file changed, 20 insertions(+) 2241 2242andrewsensus in commit 8dc08ae2: 2243 update leap year comment 2244 1 file changed, 1 insertion(+), 1 deletion(-) 2245 2246antirez in commit 69997153: 2247 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2248antirez in commit a93f8f09: 2249 Test: XDEL basic test. 2250 1 file changed, 12 insertions(+) 2251 2252Salvatore Sanfilippo in commit a44a5934: 2253 Merge pull request #5119 from trevor211/fixSlowlogConfig 2254WuYunlong in commit d6ba4fd5: 2255 Fix config set slowlog-log-slower-than and condition in createLatencyReport 2256 2 files changed, 2 insertions(+), 2 deletions(-) 2257 2258WuYunlong in commit b3660be8: 2259 Add test in slowlog.tcl 2260 1 file changed, 10 insertions(+) 2261 2262artix in commit d4182a0a: 2263 Cluster Manager: more checks on --cluster-weight option. 2264 1 file changed, 12 insertions(+), 2 deletions(-) 2265 2266artix in commit d222eda9: 2267 Redis-trib deprecated: it no longer works and it outputs a warning to the user. 2268 1 file changed, 103 insertions(+), 1804 deletions(-) 2269 2270artix in commit 513eb572: 2271 Cluster Manager: auth support (-a argument). 2272 1 file changed, 41 insertions(+), 19 deletions(-) 2273 2274Salvatore Sanfilippo in commit f3980bb9: 2275 Merge pull request #5115 from shenlongxing/patch-1 2276Shen Longxing in commit c2a85fb3: 2277 Delete unused role checking. 2278 1 file changed, 2 insertions(+), 6 deletions(-) 2279 2280Salvatore Sanfilippo in commit 4cb5bd4e: 2281 Merge pull request #4820 from charpty/wip-serverc-simplify 2282antirez in commit 8d6b7861: 2283 Add regression test for #5111. 2284 1 file changed, 15 insertions(+) 2285 2286antirez in commit b6260a02: 2287 Streams: when re-delivering because of SETID, reset deliveries counter. 2288 1 file changed, 2 insertions(+), 2 deletions(-) 2289 2290antirez in commit a7c180e5: 2291 Simplify duplicated NACK #5112 fix. 2292 1 file changed, 18 insertions(+), 21 deletions(-) 2293 2294Salvatore Sanfilippo in commit bf4def0f: 2295 Merge pull request #5112 from 0xtonyxia/fix-xreadgroup-crash-after-setid 2296Salvatore Sanfilippo in commit 16770551: 2297 Merge pull request #5114 from oranagra/defrag_32 2298Oran Agra in commit 920158ec: 2299 Active defrag fixes for 32bit builds (again) 2300 1 file changed, 2 insertions(+), 2 deletions(-) 2301 2302Salvatore Sanfilippo in commit f45e7901: 2303 Merge pull request #4967 from JingchengLi/unstable 2304tengfeng in commit 9505dd20: 2305 fix repeat argument issue and reduce unnessary loop times for redis-cli. 2306 1 file changed, 12 insertions(+), 7 deletions(-) 2307 2308antirez in commit 0420c327: 2309 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2310antirez in commit 28e95c7c: 2311 Streams: fix typo "consumer". 2312 1 file changed, 1 insertion(+), 1 deletion(-) 2313 2314antirez in commit a8c1bb31: 2315 Streams: fix new XREADGROUP sync logic. 2316 1 file changed, 13 insertions(+), 3 deletions(-) 2317 2318antirez in commit 1a02b5f6: 2319 Streams: make blocking for > a truly special case. 2320 1 file changed, 29 insertions(+), 4 deletions(-) 2321 2322antirez in commit a71e8148: 2323 Streams: send an error to consumers blocked on non-existing group. 2324 1 file changed, 5 insertions(+), 1 deletion(-) 2325 2326antirez in commit 09327f11: 2327 Streams: fix unblocking logic into a consumer group. 2328 1 file changed, 24 insertions(+), 14 deletions(-) 2329 2330dejun.xdj in commit 3f8a3efe: 2331 Streams: fix xreadgroup crash after xgroup SETID is sent. 2332 1 file changed, 20 insertions(+), 15 deletions(-) 2333 2334Salvatore Sanfilippo in commit 7239e9ca: 2335 Merge pull request #5095 from 0xtonyxia/fix-indentation 2336dejun.xdj in commit 61f12973: 2337 Bugfix: PEL is incorrect when consumer is blocked using xreadgroup with NOACK option. 2338 4 files changed, 6 insertions(+), 1 deletion(-) 2339 2340antirez in commit b67f0276: 2341 redis-cli: fix #4990 additional argument in help. 2342 1 file changed, 1 insertion(+) 2343 2344antirez in commit 18d65849: 2345 redis-cli: fix #5096 double error message. 2346 1 file changed, 1 insertion(+), 1 deletion(-) 2347 2348antirez in commit 84620327: 2349 redis-cli: cliConnect() flags CC_FORCE and CC_QUIET. 2350 1 file changed, 23 insertions(+), 13 deletions(-) 2351 2352Amit Dey in commit a3a5a25f: 2353 fixing broken link in CONTRIBUTING 2354 1 file changed, 1 insertion(+), 1 deletion(-) 2355 2356dejun.xdj in commit 289d8d9c: 2357 CLIENT UNBLOCK: fix client unblock help message. 2358 1 file changed, 1 insertion(+), 1 deletion(-) 2359 2360minkikim89 in commit 62a4a8c1: 2361 fix whitespace in redis-cli.c 2362 1 file changed, 362 insertions(+), 362 deletions(-) 2363 2364WuYunlong in commit 0a5805d7: 2365 fix compile warning in addReplySubcommandSyntaxError 2366 1 file changed, 1 insertion(+), 1 deletion(-) 2367 2368antirez in commit cb78c842: 2369 Use nolocks_localtime() for safer logging. 2370 2 files changed, 8 insertions(+), 2 deletions(-) 2371 2372antirez in commit 81778d91: 2373 Cache timezone and daylight active flag for safer logging. 2374 2 files changed, 14 insertions(+), 1 deletion(-) 2375 2376antirez in commit 18d8205b: 2377 Localtime: clarify is_leap_year() working with comments. 2378 1 file changed, 4 insertions(+), 4 deletions(-) 2379 2380antirez in commit 29644144: 2381 Localtime: fix comment about leap year. 2382 1 file changed, 1 insertion(+), 1 deletion(-) 2383 2384antirez in commit 0ea39aa4: 2385 Localtime: fix daylight saving adjustment. Use * not +. 2386 1 file changed, 1 insertion(+), 1 deletion(-) 2387 2388antirez in commit 6614d305: 2389 Localtime: fix daylight time documentation and computation. 2390 1 file changed, 14 insertions(+), 4 deletions(-) 2391 2392dejun.xdj in commit 46f5a2ca: 2393 Fix indentation. 2394 2 files changed, 14 insertions(+), 14 deletions(-) 2395 2396antirez in commit 243c5a7a: 2397 Localtime: add a test main() function to check the output. 2398 1 file changed, 15 insertions(+), 1 deletion(-) 2399 2400antirez in commit c25ee35a: 2401 Localtime: day of month is 1 based. Convert from 0 based "days". 2402 1 file changed, 2 insertions(+), 2 deletions(-) 2403 2404antirez in commit b9f33830: 2405 Localtime: fix timezone adjustment. 2406 1 file changed, 2 insertions(+), 1 deletion(-) 2407 2408antirez in commit 0c12cbed: 2409 Localtime: compute year, month and day of the month. 2410 1 file changed, 26 insertions(+) 2411 2412antirez in commit 06ca400f: 2413 Localtime: basics initial calculations. Year missing. 2414 1 file changed, 30 insertions(+), 2 deletions(-) 2415 2416antirez in commit 6a529067: 2417 Localtime function skeleton and file added. 2418 1 file changed, 44 insertions(+) 2419 2420Jack Drogon in commit 93238575: 2421 Fix typo 2422 40 files changed, 99 insertions(+), 99 deletions(-) 2423 2424antirez in commit 94b3ee61: 2425 Clarify the pending_querybuf field of clients. 2426 1 file changed, 4 insertions(+), 3 deletions(-) 2427 2428antirez in commit 549b8b99: 2429 Improve style of PR #5084. 2430 1 file changed, 8 insertions(+), 2 deletions(-) 2431 2432Salvatore Sanfilippo in commit 526b30a7: 2433 Merge pull request #5084 from chendq8/pending-querybuf 2434antirez in commit 677d10b2: 2435 Set repl_down_since to zero on state change. 2436 1 file changed, 2 insertions(+), 1 deletion(-) 2437 2438Salvatore Sanfilippo in commit 02e38516: 2439 Merge pull request #5081 from trevor211/fixClusterFailover 2440chendianqiang in commit cbb2ac07: 2441 Merge branch 'unstable' into pending-querybuf 2442antirez in commit 2edcafb3: 2443 addReplySubSyntaxError() renamed to addReplySubcommandSyntaxError(). 2444 12 files changed, 14 insertions(+), 14 deletions(-) 2445 2446Salvatore Sanfilippo in commit bc6a0045: 2447 Merge pull request #4998 from itamarhaber/module_command_help 2448Salvatore Sanfilippo in commit ee09b5ed: 2449 Merge pull request #5071 from akshaynagpal/patch-2 2450Salvatore Sanfilippo in commit f03ad962: 2451 Merge pull request #5068 from shenlongxing/fix-rename-command 2452Salvatore Sanfilippo in commit e4881cd0: 2453 Merge pull request #5090 from trevor211/test_helper_tcl 2454WuYunlong in commit 2833cfbe: 2455 fix tests/test_helper.tcl with --wait-server option. Issue #5063 added --wait-server option, but can not work. 2456 1 file changed, 1 deletion(-) 2457 2458chendianqiang in commit 7de1ada0: 2459 limit the size of pending-querybuf in masterclient 2460 4 files changed, 48 insertions(+) 2461 2462WuYunlong in commit 2e167f7d: 2463 fix server.repl_down_since resetting, so that slaves could failover automatically as expected. 2464 1 file changed, 1 insertion(+), 1 deletion(-) 2465 2466WuYunlong in commit aeb7bc3e: 2467 cluster.tcl: Add master consecutively down test. 2468 1 file changed, 77 insertions(+) 2469 2470antirez in commit d751d98b: 2471 Change CLIENT LIST TYPE help string. 2472 1 file changed, 2 insertions(+), 2 deletions(-) 2473 2474Salvatore Sanfilippo in commit a0b05a04: 2475 Merge pull request #5075 from soloestoy/client-list-types 2476Salvatore Sanfilippo in commit aa2c390e: 2477 Merge pull request #5074 from soloestoy/fix-compile-warning 2478Salvatore Sanfilippo in commit a4ef94d2: 2479 Merge pull request #5076 from 0xtonyxia/add-no-auth-warning-option 2480dejun.xdj in commit 9f185626: 2481 Check if password is used on command line interface. 2482 1 file changed, 1 insertion(+), 1 deletion(-) 2483 2484dejun.xdj in commit 1139070a: 2485 Fix trailing white space. 2486 1 file changed, 1 insertion(+), 1 deletion(-) 2487 2488dejun.xdj in commit bbd0ca95: 2489 Fix code format issue. 2490 1 file changed, 4 insertions(+), 4 deletions(-) 2491 2492dejun.xdj in commit 7becf54e: 2493 Don't output password warning message when --no-auth-warning is used. 2494 1 file changed, 10 insertions(+), 1 deletion(-) 2495 2496dejun.xdj in commit bde05e9c: 2497 Avoid -Woverlength-strings compile warning. 2498 1 file changed, 5 insertions(+), 3 deletions(-) 2499 2500antirez in commit 5baf50d8: 2501 Rax library updated (node callback). 2502 2 files changed, 19 insertions(+), 5 deletions(-) 2503 2504dejun.xdj in commit 0b74fd67: 2505 Add --no-auth-warning help message. 2506 1 file changed, 2 insertions(+) 2507 2508zhaozhao.zz in commit b9cbd04b: 2509 clients: add type option for client list 2510 4 files changed, 20 insertions(+), 6 deletions(-) 2511 2512zhaozhao.zz in commit f5538642: 2513 clients: show pubsub flag in client list 2514 1 file changed, 1 insertion(+) 2515 2516zhaozhao.zz in commit 1fcf2737: 2517 fix some compile warnings 2518 2 files changed, 2 insertions(+), 2 deletions(-) 2519 2520Akshay Nagpal in commit 007e3cbd: 2521 Added link to Google Group 2522 1 file changed, 3 insertions(+), 1 deletion(-) 2523 2524antirez in commit ab55f9da: 2525 Make CLIENT HELP output nicer to the eyes. 2526 1 file changed, 11 insertions(+), 11 deletions(-) 2527 2528antirez in commit 75f1a7bd: 2529 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2530antirez in commit 4a70ff74: 2531 Add unblock in CLIENT HELP. 2532 1 file changed, 1 insertion(+) 2533 2534shenlongxing in commit 3c27db1c: 2535 fix empty string for sentinel rename-command 2536 1 file changed, 5 insertions(+) 2537 2538Salvatore Sanfilippo in commit f7b21bc7: 2539 Merge pull request #5066 from oranagra/defrag_jemalloc5_fix 2540Salvatore Sanfilippo in commit 730a4cfa: 2541 Merge pull request #5067 from mpaltun/mpaltun-doc-fix 2542antirez in commit 2214043b: 2543 CLIENT UNBLOCK: support unblocking by error. 2544 1 file changed, 22 insertions(+), 3 deletions(-) 2545 2546Mustafa Paltun in commit 010dc172: 2547 Update t_stream.c 2548 1 file changed, 2 insertions(+), 2 deletions(-) 2549 2550Mustafa Paltun in commit 6d0acb33: 2551 Update help.h 2552 1 file changed, 1 insertion(+), 1 deletion(-) 2553 2554Oran Agra in commit de495ee7: 2555 minor fix in creating a stream NACK for rdb and defrag tests 2556 2 files changed, 2 insertions(+), 2 deletions(-) 2557 2558antirez in commit 71295ee3: 2559 CLIENT UNBLOCK implemented. 2560 1 file changed, 22 insertions(+) 2561 2562antirez in commit fb39bfd7: 2563 Take clients in a ID -> Client handle dictionary. 2564 3 files changed, 6 insertions(+) 2565 2566antirez in commit ed65d734: 2567 CLIENT ID implemented. 2568 1 file changed, 4 insertions(+) 2569 2570Salvatore Sanfilippo in commit 345b4809: 2571 Merge pull request #5063 from oranagra/test_suite_improvements 2572Salvatore Sanfilippo in commit 35c5f3fa: 2573 Merge pull request #5065 from oranagra/defrag_jemalloc5 2574Oran Agra in commit 5616d4c6: 2575 add active defrag support for streams 2576 6 files changed, 230 insertions(+), 25 deletions(-) 2577 2578Oran Agra in commit e8099cab: 2579 add defrag hint support into jemalloc 5 2580 3 files changed, 43 insertions(+) 2581 2582Oran Agra in commit 751eea24: 2583 test suite infra improvements and fix 2584 2 files changed, 19 insertions(+) 2585 2586Salvatore Sanfilippo in commit bb666d44: 2587 Merge pull request #5027 from tigertv/unstable 2588antirez in commit b9058c73: 2589 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2590antirez in commit 43831779: 2591 Sentinel: test command renaming feature. 2592 1 file changed, 10 insertions(+) 2593 2594Salvatore Sanfilippo in commit eb052ba9: 2595 Merge pull request #5059 from guybe7/fix_restore_warning 2596antirez in commit 27178a3f: 2597 Fix type of argslen in sendSynchronousCommand(). 2598 1 file changed, 1 insertion(+), 1 deletion(-) 2599 2600antirez in commit 1f1e724f: 2601 Remove black space. 2602 1 file changed, 1 insertion(+), 1 deletion(-) 2603 2604Salvatore Sanfilippo in commit aa5eaad4: 2605 Merge pull request #5037 from madolson/repl-auth-fix 2606antirez in commit 3cf8dd2c: 2607 Sentinel: fix SENTINEL SET error reporting. 2608 1 file changed, 18 insertions(+), 9 deletions(-) 2609 2610Madelyn Olson in commit 45731edc: 2611 Addressed comments 2612 1 file changed, 1 insertion(+), 1 deletion(-) 2613 2614Madelyn Olson in commit e8d68b6b: 2615 Fixed replication authentication with whitespace in password 2616 1 file changed, 12 insertions(+), 5 deletions(-) 2617 2618antirez in commit fc0c9c80: 2619 Sentinel: drop the renamed-command entry in a more natural way. 2620 1 file changed, 4 insertions(+), 7 deletions(-) 2621 2622antirez in commit 8ba670f5: 2623 Sentinel command renaming: document it into sentinel.conf. 2624 1 file changed, 19 insertions(+) 2625 2626antirez in commit a8a76bda: 2627 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2628antirez in commit 2358de68: 2629 Sentinel command renaming: use case sensitive hashing for the dict. 2630 1 file changed, 2 insertions(+), 1 deletion(-) 2631 2632antirez in commit a9c50088: 2633 Sentinel command renaming: fix CONFIG SET event logging. 2634 1 file changed, 17 insertions(+), 1 deletion(-) 2635 2636antirez in commit b72cecd7: 2637 Sentinel command renaming: fix CONFIG SET after refactoring. 2638 1 file changed, 5 insertions(+), 5 deletions(-) 2639 2640antirez in commit 91a384a5: 2641 Sentinel command renaming: implement SENTINEL SET. 2642 1 file changed, 19 insertions(+) 2643 2644antirez in commit 903582dd: 2645 Sentinel: make SENTINEL SET able to handle different arities. 2646 1 file changed, 19 insertions(+), 12 deletions(-) 2647 2648antirez in commit c303e768: 2649 Sentinel command renaming: config rewriting. 2650 1 file changed, 12 insertions(+) 2651 2652antirez in commit 60df7dbe: 2653 Sentinel command renaming: rename-command option parsing. 2654 1 file changed, 11 insertions(+) 2655 2656antirez in commit 72e8a33b: 2657 Sentinel command renaming: base machanism implemented. 2658 1 file changed, 64 insertions(+), 15 deletions(-) 2659 2660Guy Benoish in commit dfcc20f4: 2661 Fix compiler warning in restoreCommand 2662 1 file changed, 1 insertion(+), 1 deletion(-) 2663 2664Salvatore Sanfilippo in commit cf7fcdbe: 2665 Merge pull request #4634 from soloestoy/special-auth 2666Salvatore Sanfilippo in commit 70b7fa2c: 2667 Merge pull request #5049 from youjiali1995/fix-load-rdb 2668Salvatore Sanfilippo in commit 54d66d39: 2669 Merge pull request #5053 from michael-grunder/zpopminmax-keypos 2670Salvatore Sanfilippo in commit 199e704a: 2671 Merge pull request #5050 from shenlongxing/fix-typo 2672michael-grunder in commit db6b99f9: 2673 Update ZPOPMIN/ZPOPMAX command declaration 2674 1 file changed, 2 insertions(+), 2 deletions(-) 2675 2676Salvatore Sanfilippo in commit a16aa03a: 2677 Merge pull request #5051 from oranagra/streams_mem_estimate 2678Oran Agra in commit 20e10dc7: 2679 fix streams memory estimation, missing raxSeek 2680 1 file changed, 2 insertions(+), 1 deletion(-) 2681 2682shenlongxing in commit ec55df11: 2683 fix typo 2684 4 files changed, 4 insertions(+), 4 deletions(-) 2685 2686youjiali1995 in commit df6644fe: 2687 Fix rdbLoadIntegerObject() to create shared objects when needed. 2688 1 file changed, 1 insertion(+), 1 deletion(-) 2689 2690Salvatore Sanfilippo in commit 1527bcad: 2691 Merge pull request #5036 from bepahol/unstable 2692Salvatore Sanfilippo in commit c1e82405: 2693 Merge pull request #5039 from oranagra/rdb_dbsize_hint 2694Salvatore Sanfilippo in commit 79f55eed: 2695 Merge pull request #5040 from oranagra/memrev64ifbe_fix 2696Salvatore Sanfilippo in commit c6f4118c: 2697 Merge pull request #5045 from guybe7/restore_fix 2698Guy Benoish in commit b5197f1f: 2699 Enhance RESTORE with RDBv9 new features 2700 5 files changed, 100 insertions(+), 22 deletions(-) 2701 2702Salvatore Sanfilippo in commit c6fdebf5: 2703 Merge pull request #5042 from oranagra/malloc_usable_size_libc 2704Oran Agra in commit 482785ac: 2705 add malloc_usable_size for libc malloc 2706 2 files changed, 8 insertions(+), 3 deletions(-) 2707 2708Salvatore Sanfilippo in commit 4da29630: 2709 Merge pull request #5023 from FX-HAO/unstable 2710antirez in commit e7219025: 2711 Test RDB stream encoding saving/loading. 2712 1 file changed, 17 insertions(+) 2713 2714Salvatore Sanfilippo in commit 5f5e1199: 2715 Merge pull request #5041 from oranagra/redis-rdb-check_rdbLoadMillisecondTime 2716antirez in commit 4848fbec: 2717 Modules: convert hash to hash table for big objects. 2718 1 file changed, 3 insertions(+) 2719 2720Oran Agra in commit f31b0405: 2721 fix redis-rdb-check to provide proper arguments to rdbLoadMillisecondTime 2722 2 files changed, 3 insertions(+), 2 deletions(-) 2723 2724antirez in commit 333c98c4: 2725 AOF: remove no longer used variable "now". 2726 1 file changed, 1 deletion(-) 2727 2728antirez in commit e94b2053: 2729 Modify clusterRedirectClient() to handle ZPOP and XREAD. 2730 1 file changed, 5 insertions(+), 1 deletion(-) 2731 2732Oran Agra in commit 26229aa6: 2733 use safe macro (non empty) in memrev64ifbe to eliminate empty if warning 2734 1 file changed, 3 insertions(+), 3 deletions(-) 2735 2736Oran Agra in commit 5cd3c952: 2737 64 bit RDB_OPCODE_RESIZEDB in rdb saving 2738 1 file changed, 3 insertions(+), 7 deletions(-) 2739 2740antirez in commit ba92b517: 2741 Remove AOF optimization to skip expired keys. 2742 1 file changed, 3 deletions(-) 2743 2744Benjamin Holst in commit 36524060: 2745 Update README.md 2746 1 file changed, 1 insertion(+), 1 deletion(-) 2747 2748antirez in commit 44571088: 2749 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2750antirez in commit 6967d0bd: 2751 Revert fix #4976 just leaving the flush() part. 2752 1 file changed, 1 insertion(+), 5 deletions(-) 2753 2754antirez in commit 0ed0dc3c: 2755 Fix incrDecrCommand() to create shared objects when needed. 2756 1 file changed, 1 insertion(+), 1 deletion(-) 2757 2758antirez in commit bd92389c: 2759 Refactor createObjectFromLongLong() to be suitable for value objects. 2760 2 files changed, 33 insertions(+), 2 deletions(-) 2761 2762Salvatore Sanfilippo in commit 3518bb66: 2763 Merge pull request #5020 from shenlongxing/fix-config 2764antirez in commit 20766608: 2765 Streams: fix xreadGetKeys() for correctness. 2766 1 file changed, 19 insertions(+), 5 deletions(-) 2767 2768Salvatore Sanfilippo in commit e670ccff: 2769 Merge pull request #4857 from youjiali1995/fix-command-getkeys 2770antirez in commit a0b27dae: 2771 Streams: fix xreadGetKeys() buffer overflow. 2772 1 file changed, 1 insertion(+), 1 deletion(-) 2773 2774antirez in commit 62f9ac6f: 2775 Streams: Change XADD MAXLEN handling of values <= 0. 2776 1 file changed, 3 insertions(+), 3 deletions(-) 2777 2778Max Vetrov in commit d4c4f20a: 2779 Update sort.c 2780 1 file changed, 1 insertion(+), 3 deletions(-) 2781 2782antirez in commit 79a1c19a: 2783 XADD MAXLEN should return an error for values < 0. 2784 1 file changed, 5 insertions(+) 2785 2786Salvatore Sanfilippo in commit 2e0ab4a8: 2787 Merge pull request #4976 from trevor211/fixDebugLoadaof 2788Salvatore Sanfilippo in commit 94658303: 2789 Merge pull request #4758 from soloestoy/rdb-save-incremental-fsync 2790antirez in commit 6a66b93b: 2791 Sentinel: add an option to deny online script reconfiguration. 2792 2 files changed, 41 insertions(+) 2793 2794antirez in commit d353023a: 2795 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2796antirez in commit d6e8fe77: 2797 Fix infinite loop in dbRandomKey(). 2798 1 file changed, 13 insertions(+) 2799 2800Salvatore Sanfilippo in commit 40d5df65: 2801 Merge pull request #5008 from zwkno1/unstable 2802Salvatore Sanfilippo in commit 8bc3ffcb: 2803 Merge pull request #5021 from soloestoy/fix-exists 2804Salvatore Sanfilippo in commit 6c7847a1: 2805 Merge pull request #5018 from soloestoy/optimize-reply 2806antirez in commit 1e92fde3: 2807 Fix SCAN bug regression test, avoiding empty SREM call. 2808 1 file changed, 1 insertion(+), 1 deletion(-) 2809 2810Fuxin Hao in commit a4f658b2: 2811 Fix update_zmalloc_stat_alloc in zrealloc 2812 1 file changed, 1 insertion(+), 1 deletion(-) 2813 2814================================================================================ 2815Redis 5.0 RC3 Released Wed Jun 14 9:51:44 CEST 2018 2816================================================================================ 2817 2818Upgrade urgency LOW: 2819 2820This release fixes compilation of Redis RC2. For an error the commit from unstable 2821updating the Rax library was not merged into the 5.0 branch. 2822 2823================================================================================ 2824Redis 5.0 RC2 Released Wed Jun 13 12:49:13 CEST 2018 2825================================================================================ 2826 2827Upgrade urgency CRITICAL: This release fixes important security issues. 2828 HIGH: This release fixes a SCAN commands family bug. 2829 MODERATE: This release fixes a PSYNC2 edge case with expires. 2830 MODERATE: Sentinel related fixes. 2831 LOW: All the other issues 2832 2833NOTE: This release breaks API compatibility with certain APIs that were 2834introduced in Redis 5.0 RC1. Notably ZPOP* now returns score/element in reverse 2835order. XINFO <key> special form was removed, now XINFO STREAM <key> must be 2836used to obtain general information about the stream. 2837 2838Redis 5.0 RC2 ixes a number of important issues: 2839 2840* Important security issues related to the Lua scripting engine. 2841 Please check https://github.com/antirez/redis/issues/5017 2842 for more information. 2843 2844* A bug with SCAN, SSCAN, HSCAN and ZSCAN, that may not return all the elements. 2845 We also add a regression test that can trigger the issue often when present, and 2846 may in theory be able to find unrelated regressions. 2847 2848* A PSYNC2 bug is fixed: Redis should not expire keys when saving RDB files 2849 because otherwise it is no longer possible to use such RDB file as a base 2850 for partial resynchronization. It no longer represents the right state. 2851 2852* Compatibility of AOF with RDB preamble when the RDB checksum is disabled. 2853 2854* Sentinel bug that in some cases prevented Sentinel to detect that the master 2855 was down immediately. A delay was added to the detection. 2856 2857* XREADGROUP would crash when the master had attacked slaves. 2858 2859* Replication and events generation of several streams command were fixed. 2860 2861* XREVRANGE fixed, in some cases it could not return elements, or crash the 2862 server, or in general not behave correctly. 2863 2864* ZPOP can now unblock multiple clients in a sane way. 2865 2866* Other minor issues. 2867 2868Moreover this release adds new features: 2869 2870* XGROUP DESTROY and XGROUP SETID. 2871 2872* RDB loading speedup. 2873 2874* Configurable stream macro node limits (number of elements / bytes). 2875 2876* More smaller improvements. 2877 2878The following is the list of commits composing the release, please check 2879the commit messages and authors for credits. 2880 2881antirez in commit 9fdcc159: 2882 Security: fix redis-cli buffer overflow. 2883 1 file changed, 16 insertions(+), 11 deletions(-) 2884 2885antirez in commit cf760071: 2886 Security: fix Lua struct package offset handling. 2887 1 file changed, 6 insertions(+), 2 deletions(-) 2888 2889antirez in commit a57595ca: 2890 Security: more cmsgpack fixes by @soloestoy. 2891 1 file changed, 7 insertions(+) 2892 2893antirez in commit 8783fb94: 2894 Security: update Lua struct package for security. 2895 1 file changed, 23 insertions(+), 23 deletions(-) 2896 2897antirez in commit 8cb9344b: 2898 Security: fix Lua cmsgpack library stack overflow. 2899 1 file changed, 3 insertions(+) 2900 2901赵磊 in commit 59080f60: 2902 Fix dictScan(): It can't scan all buckets when dict is shrinking. 2903 1 file changed, 14 insertions(+), 11 deletions(-) 2904 2905dejun.xdj in commit ac2a824a: 2906 Fix redis-cli memory leak when sending set preference command. 2907 1 file changed, 2 insertions(+) 2908 2909dejun.xdj in commit c7197ff5: 2910 Check if the repeat value is positive in while loop of cliSendCommand(). 2911 1 file changed, 1 insertion(+), 1 deletion(-) 2912 2913dejun.xdj in commit 3f77777f: 2914 Change the type of repeat argument to long for function cliSendCommand. 2915 1 file changed, 1 insertion(+), 1 deletion(-) 2916 2917dejun.xdj in commit 7a565d72: 2918 Fix negtive repeat command value issue. 2919 1 file changed, 11 insertions(+), 3 deletions(-) 2920 2921dejun.xdj in commit 64bf60fb: 2922 Detect and stop saving history for auth command with repeat option. 2923 1 file changed, 17 insertions(+), 10 deletions(-) 2924 2925dejun.xdj in commit 5bed12aa: 2926 Change the warning message a little bit to avoid trademark issuses. 2927 1 file changed, 1 insertion(+), 1 deletion(-) 2928 2929dejun.xdj in commit d71c4961: 2930 Stop saving auth command in redis-cli history. 2931 1 file changed, 4 insertions(+), 2 deletions(-) 2932 2933dejun.xdj in commit fca99e41: 2934 Add warning message when using password on command line 2935 1 file changed, 1 insertion(+) 2936 2937antirez in commit 01407a3a: 2938 Don't expire keys while loading RDB from AOF preamble. 2939 3 files changed, 5 insertions(+), 5 deletions(-) 2940 2941WuYunlong in commit fb5408cf: 2942 Fix rdb save by allowing dumping of expire keys, so that when we add a new slave, and do a failover, eighter by manual or not, other local slaves will delete the expired keys properly. 2943 2 files changed, 3 insertions(+), 7 deletions(-) 2944 2945antirez in commit 0b8b6df4: 2946 Backport hiredis issue 525 fix to compile on FreeBSD. 2947 1 file changed, 1 insertion(+), 1 deletion(-) 2948 2949antirez in commit e98627c5: 2950 Add INIT INFO to the provided init script. 2951 1 file changed, 8 insertions(+) 2952 2953antirez in commit 17f5de89: 2954 Fix ae.c when a timer finalizerProc adds an event. 2955 2 files changed, 10 insertions(+), 6 deletions(-) 2956 2957antirez in commit 266e6423: 2958 Sentinel: fix delay in detecting ODOWN. 2959 1 file changed, 9 insertions(+), 5 deletions(-) 2960 2961zhaozhao.zz in commit eafaf172: 2962 AOF & RDB: be compatible with rdbchecksum no 2963 1 file changed, 9 insertions(+), 7 deletions(-) 2964 2965huijing.whj in commit 4630da37: 2966 fix int overflow problem in freeMemoryIfNeeded 2967 1 file changed, 1 insertion(+), 1 deletion(-) 2968 2969================================================================================ 2970Redis 5.0 RC1 Released Tue May 29 14:14:11 CEST 2018 2971================================================================================ 2972 2973Upgrade urgency LOW: This is the first RC of Redis 5. 2974 2975Introduction to the Redis 5 release 2976=================================== 2977 2978Redis 5 is a release focused on a few important features. While Redis 4 2979was very very focused on operations, Redis 5 changes are mostly user-facing, 2980with the implementation of new data types and operations on top of existing 2981types. The following are the major features of this release: 2982 29831. The new Stream data type. https://redis.io/topics/streams-intro 29842. New Redis modules APIs: Timers, Cluster and Dictionary APIs. 29853. RDB now store LFU and LRU information. 29864. The cluster manager was ported from Ruby (redis-trib.rb) to C code 2987 inside redis-cli. Check `redis-cli --cluster help` for more info. 29885. New sorted set commands: ZPOPMIN/MAX and blocking variants. 29896. Active defragmentation version 2. 29907. Improvemenets in HyperLogLog implementations. 29918. Better memory reporting capabilities. 29929. Many commands with sub-commands now have an HELP subcommand. 299310. Better performances when clients connect and disconnect often. 299411. Many bug fixes and other random improvements. 299512. Jemalloc was upgraded to version 5.1 299613. CLIENT UNBLOCK and CLIENT ID. 299714. The LOLWUT command was added. http://antirez.com/news/123 299815. We no longer use the "slave" word if not for API backward compatibility. 299916. Differnet optimizations in the networking layer. 300017. Lua improvements: 3001 - Better propagation of Lua scripts to slaves / AOF. 3002 - Lua scripts can now timeout and get in -BUSY state in the slave as well. 300318. Dynamic HZ to balance idle CPU usage with responsiveness. 300419. The Redis core was refactored and improved in many ways. 3005 3006Thanks to all the users and developers who made this release possible. 3007We'll follow up with more RC releases, until the code looks production ready 3008and we don't get reports of serious issues for a while. 3009 3010A special thank you for the amount of work put into this release 3011(in decreasing number of commits) by: 3012 3013Fabio Nicotra, <[email protected]> 3014Soloestoy <[email protected]> 3015Itamar Haber <[email protected]> 3016Oran Agra <[email protected]> 3017Dvir Volk <[email protected]> 3018dejun.xdj <[email protected]> 3019Guy Benoish <[email protected]> 3020Charsyam <[email protected]> 3021Otmar Ertl <[email protected]> 3022Jan-Erik Rediger <[email protected]> 3023Spinlock <[email protected]> 3024 3025Migrating from 4.0 to 5.0 3026========================= 3027 3028Redis 4.0 is mostly a strict subset of 5.0, you should not have any problem 3029upgrading your application from 4.0 to 5.0. However this is a list of small 3030non-backward compatible changes introduced in the 5.0 release: 3031 3032* redis-cli now implements the cluster management tool. We still ship the 3033 old redis-trib, but new fixes will be implemented only in redis-cli. 3034 See `redis-cli --cluster help` for more info. 3035 3036* The RDB format changed. Redis 5.0 is still able to read 4.0 (and all the 3037 past versions) files, but not the other way around. 3038 3039* Certain log formats and sentences are different in Redis 5.0. 3040 3041* Now by default maxmemory is ignored by slaves, and used only once a slave 3042 is promoted to master. It means that in setups where you want slaves to 3043 enforce maxmemory in an independent way from the master (that will anyway 3044 stream the key eviction DEL commands), you should active this feature manually 3045 and make sure you understand that it breaks consistency if writes are not 3046 always idempotent. TLDR: the new behavior is much better for 99.999% of use 3047 cases, revert it if you really know what you are doing. 3048 3049* Scripts are only replicated by their *effects* and not by sending EVAL/EVALSHA 3050 to slaves or the AOF log itself. This is much better in the general case 3051 and in the future we want to totally remove the other possiblity of 3052 propagating scripts the old way (as EVAL). However you can still turn this 3053 back to the default via the non-documented (if not here) Redis configuration 3054 directive "lua-replicate-commands yes" or 3055 "DEBUG lua-always-replicate-commands 0". However note that Redis 6 may 3056 completely remove such feature. 3057 3058* Because of the above change related to scripts replication, certain Redis 3059 commands that in Redis 4 had their result ordered lexicographically before 3060 being passed to Lua via the return value of redis.call(), now have a behavior 3061 more similar to calling the commands directly from a normal client. For 3062 instance the ordering of elements returned by SMEMBERS or SDIFF is now 3063 undetermined in Lua, exactly as it is by default when calling the commands 3064 from a non-scripting context. 3065 3066-------------------------------------------------------------------------------- 3067 3068Credits: For each release, a list of changes with the relative author is 3069provided. Where not specified the implementation and design is done by 3070Salvatore Sanfilippo. Thanks to Redis Labs for making all this possible. 3071Also many thanks to all the other contributors and the amazing community 3072we have. 3073 3074Commit messages may contain additional credits. 3075 3076Enjoy, 3077Salvatore 3078