12 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
fhajny
|
9188f158d6 |
Redis 4.0.1
Bug fixes: - Loading two or more modules exporting native data types resulted into the inability to reload the RDB file. - Crash in modules when calling from Lua scripts module commands that would block. - A Redis Cluster crash due to mis-handling of the "migrate-to" internal flag. - Other smaller fixes not worth of a release per se, but nice to add here. Redis 4.0.0 Major features - Redis modules system. Redis now allows developers to write modules that can extend the Redis functionalities and implement new data types. - Partial Replication (PSYNC) version 2. - Cache eviction improvements. Redis 4.0 implements LFU (Least Frequently Used) as a new eviction algorithm, and improves the functionality, performances and precision of the existing algorithms. - Lazy freeing of keys. Redis is now able to delete keys in the background in a different thread without blocking the server. - Mixed RDB-AOF format. If enabled the new format is used when rewriting the AOF file: the rewrite uses the more compact and faster to generate RDB format, and an AOF stream is appended to the file. - A new MEMORY command, able to perform memory analysis of different kinds: troubleshooting of memory issues (with MEMORY DOCTOR, similar to LATENCY DOCTOR), reporting of the amount of memory used by a single key, more in-depth reporting of Redis memory usage compared to what the INFO command offers. - Redis Cluster support for NAT / Docker. - Redis uses now less memory in order to store the same amount of data. The gain depends a lot on the kind of dataset stored. - Redis is now able to defragment the used memory and reclaim space incrementally while running. Smaller features - Improvements to the RDB format to support 64 bit lengths, binary sorted set scores, and more. - SWAPDB command: ability to completely and immediately (no latency) replace two Redis databases. - Improvements to `dict.c`, the Redis hash table implementation. - Security improvements mapping POST and Host: commands to QUIT in order to prevent cross protocol scripting attacks. - RPUSHX and LPUSHX now accept a variable number of elements. - Reporting of additional memory used by copy on write in the INFO output. - Serious refactoring of many core parts of Redis. Migrating from 3.2 to 4.0 - The Redis Cluster bus protocol of 4.0 is no longer compatible with Redis 3.2. - Redis Cluster CLUSTER NODES output is now slightly different. - Writable slaves do not propagate writes to their sub-slaves, so writes to writable slaves remain just local. - The RDB format changed. Redis 4.0 is still able to read 3.2 (and all the past versions) files, but not the other way around. - Certain log formats and sentences are different in Redis 4.0. - Certain INFO fields, especially related to replication, are now different. - GEODIST, GEOPOS and GEOHASH return values changed for non existing keys - The SLOWLOG command entires contain additional two fields: the client address and name. This is documented in the SLOWLOG command online documentation. |
||
fhajny
|
99647713a6 |
Update databases/redis to 3.2.3.
Redis 3.2.3 Bugfixes: - There was an inverted if statement logic problem in replication.c causing a replication delay. - Redis-cli created the history file with insecure permissions, allowing reding from the file. Redis 3.2.2 - There was a bug in the List type implementation, able to cause the crash of the server under certain (non trivial to replicate) circumstances when the LSET command was used. - Redis Sentinel, when monitoring multiple masters, could crash after a Sentinel address update event. - Redis Sentinel now checks slaves INFO state more often when disconnected. - It was possible, under a variety of conditions, that the AOF and RDB children process could spawn at the same time. This is known to trash disk I/O, AOF performances, and to ultimately create latency in the Redis server. - Many GEORADIUS bugs are now fixed \o/. New features: - Now slaves support the slave-announce-ip and slave-announce-port options. - The RDB check utlity is now part of Redis and uses the same RDB code that Redis uses in order to load the dataset in memory. |
||
fhajny
|
3757a13f14 | Fix forgotten PLIST change. | ||
fhajny
|
8393d94814 |
Update databases/redis to 3.2.0.
Redis 3.2 contains significant changes to the API and implementation of Redis. - A new set of commands for Geo indexing was added (GEOADD, GEORADIUS and related commands). - The new BITFIELD command handles contiguous arrays of integers or counters of arbitrary bits width and offset inside strings. - Memory optimizations to hold the same data in less memory. - Lua scripts can now contain side effects using the new effect replication. - A complete remote Lua debugger is available in order to make writing scripts a simpler task. Read the release notes for the full set of changes: https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES |
||
fhajny
|
98c0abb137 |
Update databases/redis to 3.0.2.
--[ Redis 3.0.2 ] Release date: 4 Jun 2015 Upgrade urgency: HIGH for Redis because of a security issue. LOW for Sentinel. * [FIX] Critical security issue fix by Ben Murphy: http://t.co/LpGTyZmfS7 * [FIX] SMOVE reply fixed when src and dst keys are the same. (Glenn Nethercutt) * [FIX] Lua cmsgpack lib updated to support str8 type. (Sebastian Waisbrot) * [NEW] ZADD support for options: NX, XX, CH. See new doc at redis.io. (Salvatore Sanfilippo) * [NEW] Senitnel: CKQUORUM and FLUSHCONFIG commands back ported. (Salvatore Sanfilippo and Bill Anderson) --[ Redis 3.0.1 ] Release date: 5 May 2015 Upgrade urgency: LOW for Redis and Cluster, MODERATE for Sentinel. * [FIX] Sentinel memory leak due to hiredis fixed. (Salvatore Sanfilippo) * [FIX] Sentinel memory leak on duplicated instance. (Charsyam) * [FIX] Redis crash on Lua reaching output buffer limits. (Yossi Gottlieb) * [FIX] Sentinel flushes config on +slave events. (Bill Anderson) |
||
fhajny
|
4837a9b269 |
Update redis to 3.0.0.
--[ Redis 3.0.0 ] Release date: 1 Apr 2015 >> What's new in Redis 3.0 compared to Redis 2.8? * Redis Cluster: a distributed implementation of a subset of Redis. * New "embedded string" object encoding resulting in less cache misses. Big speed gain under certain work loads. * AOF child -> parent final data transmission to minimize latency due to "last write" during AOF rewrites. * Much improved LRU approximation algorithm for keys eviction. * WAIT command to block waiting for a write to be transmitted to the specified number of slaves. * MIGRATE connection caching. Much faster keys migraitons. * MIGARTE new options COPY and REPLACE. * CLIENT PAUSE command: stop processing client requests for a specified amount of time. * BITCOUNT performance improvements. * CONFIG SET accepts memory values in different units (for example you can use "CONFIG SET maxmemory 1gb"). * Redis log format slightly changed reporting in each line the role of the instance (master/slave) or if it's a saving child log. * INCR performance improvements. >> Refactoring changes (no new features nor bug fixes) * Blocking operations full refactoring (blocked.c) * Client output buffer memory tracking refactored. See full release notes for 3.0.0: https://raw.githubusercontent.com/antirez/redis/3.0/00-RELEASENOTES |
||
fhajny
|
c054a89423 |
Update redis to 2.8.13.
--[ Redis 2.8.13 ] Release date: 14 Jul 2014 # UPGRADE URGENCY: LOW for Redis and Sentinel, this is a features enhancement release mostly. Since this release introduces the latency monitoring feature, Redis 2.8 users experiencing latency issues are strongly encouraged to upgrade. * [FIX] CLIENT KILL minor backward compatibility fixes. (Salvatore Sanfilippo) * [FIX] Enable HAVE_ATOMIC for PowerPC. (Matt Stancliff) * [FIX] More robust PSYNC and AOF rewrites tests. (Salvatore Sanfilippo) * [FIX] Solaris build fixed. (Matt Stancliff, Salvatore Sanfilippo) * [NEW] The new latency monitoring feature, as documented at http://redis.io/topics/latency-monitor (Salvatore Sanfilippo) * [NEW] The COMMAND command, exposing the Redis command table as an API. (Matt Stancliff) * [NEW] Update used memory with C11 __atomic. (Matt Stancliff) --[ Redis 2.8.12 ] Release date: 23 Jun 2014 # UPGRADE URGENCY: HIGH for Redis, CRITICAL for Sentinel. # WARNING: This release contains a non backward compatible semantical change to Lua script that should affect an almost zero number of users. * [FIX / BREAKS BACKWARD COMPATIBILITY] Using SELECT inside Lua scripts no longer makes the selected DB to be set in the calling client. So Lua can still use SELECT, but the client calling the script will remain set to the original DB. Thix fixes an issue with Redis replication of Lua scripts that called SELECT without reverting the selected DB to the original one. (Salvatore Sanfilippo) * [FIX] Sentinel failover was instalbe if the master was detected as available during the failover (especially during manual failovers) because of an implementation error (lack of checking of SRI_PROMOTED flag). (Salvatore Sanfilippo) * [FIX] Cancel SHUTDOWN if initial AOF is being written. (Matt Stancliff) * [FIX] Sentinel: bind source address for outcoming connections. (Matt Stancliff). * [FIX] Less timing sensitive Sentinel tests. (Salvatore Sanfilippo). * [NEW] redis-cli --intrinsic-latency stopped with SIGINT still reports stats (Matt Stancliff) * [NEW] Sentinels broadcast an HELLO message ASAP after a failover in order to reach a consistent state faster (before it relied for periodic HELLO messages). (Salvatore Sanfilippo). * [NEW] Jemalloc updated to 3.6.0. (Salvatore Sanfilippo) * [NEW] CLIENT LIST speedup. (Salvatore Sanfilippo) * [NEW] CLIENT LIST new unique incremental ID to every client. (Salvatore Sanfilippo) * [NEW] ROLE command added. (Salvatore Sanfilippo) * [NEW] CLIENT KILL new form to kill by client type and ID (see doc at redis.io for more info). (Salvatore Sanfilippo) * [NEW] Sentinel now disconnects clients when instances are reconfigured (see http://redis.io/topics/sentinel-clients). (Salvatore Sanfilippo) * [NEW] Hiredis update to latest version. (Matt Stancliff) --[ Redis 2.8.11 ] Release date: 11 Jun 2014 # UPGRADE URGENCY: HIGH if you use Lua scripting, LOW otherwise. * [FIX] A previous fix for Lua -> Redis numerical precision enhancement introduced a new problem. In Redis 2.8.10 commands called from Lua passing a string that "looks like" a very large number, may actually use as argument the string converted as a float. This bug is now fixed. * [FIX] Now commands other than *PUSH* adding elements to a list will be able to awake clients blocked in a blocking POP operation. * [FIX] Cygwin compilation fixes. --[ Redis 2.8.10 ] Release date: 5 Jun 2014 # UPGRADE URGENCY: HIGH if you use min-slaves-to-write option. * [FIX] IMPORTANT! A min-slaves-to-write option active in a slave totally prevented the slave from acception the master stream of commands. This release includes testes for min-slaves-to-write, and a fix for this issue. * [FIX] Sometimes DEL returned 1 for already expired keys. Fixed. * [FIX] Fix test false positive because new osx 'leaks' output. * [FIX] PFCOUNT HLL cache invalidation fixed: no wrong value was reported but the cache was not used at all, leading to lower performances. * [FIX] Accept(2) multiple clients per readable-event invocation, and better processing of I/O while loading or busy running a timedout script. Basically now the LOADING / BUSY errors are reported at a decent speed. * [FIX] A softwaer watchdog crash fixed. * [FIX] Fixed a Lua -> Redis numerical precision loss. * [NEW] Lua scripting engine speed improved. * [NEW] Sentinel generates one new event for humans to understand better what is happening during a failover: +config-update-from. Also the time at which a failover will be re-attempted is logged. |
||
fhajny
|
ecaad1a4cc |
Update redis to 2.8.9.
--[ Redis 2.8.9 ] Release date: 22 Apr 2014 # UPGRADE URGENCY: LOW, only new features introduced, no bugs fixed. * [NEW] The HyperLogLog data structure. You can read more about it in this blog post. http://antirez.com/news/75 * [NEW] The Sorted Set data type has now support for lexicographic range queries, check the new commands ZRANGEBYLEX, ZLEXCOUNT and ZREMRANGEBYLEX, which are documented at http://redis.io. --[ Redis 2.8.8 ] Release date: 25 Mar 2014 # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. There is a potentially critical bug fix causing data loss in Redis but it requires a combination of disk full and the use of the SHUTDOWN command. * [FIX] Fixed data loss when SHUTDOWN was used with a disk full condition. * [FIX] Fixed a memory leak in the SORT syntax error processing. * [FIX] When Sentinel down-after-milliseconds parameter is modified at runtime now it gets propagated to all the slaves and sentinel instances of the master. * [FIX] `install_server.sh` script finally fixed. * [FIX] Different fixes to maxclients handling. * [NEW] Sentinels are now able to send update messages in a peer-to-peer fashion even if no Redis instances are available. Now the Sentinel liveness property that the most updated configuration in a given partition is propagated to all the Sentinels is extended to partitions without reachable instances. * [NEW] Sentinel safety properties are now ensured in a crash-recovery system model since some state is persisted on disk before replying to other nodes, and reloaded at startup. * [NEW] Sentinel now uses CLIENT SETNAME so that it is easy to identify Sentinels using CLIENT LIST among other clients. * [NEW] Sentinel failure detection and reconnection code improved. * [NEW] Use all 24 bits (instead of 22) for the Redis objects LRU field. Note that the new LRU algorithm using eviction pools was not backported from unstable for safery / code maturity concerns. * [NEW] Majory speedup for the INFO command (it is now 6 times faster). * [NEW] More Sentinel unit tests. * [NEW] New command DEBUG ERROR returns the specified error. Example: DEBUG ERROR "LOADING database". This is handy to write Redis client libraries unit tests. * [NEW] redis-cli now supports multi-line editing via updated linenoise lib. |
||
jperkin
|
45bc40abb4 |
Remove example rc.d scripts from PLISTs.
These are now handled dynamically if INIT_SYSTEM is set to "rc.d", or ignored otherwise. |
||
fhajny
|
16688104d1 |
Update redis to 2.8.7.
--[ Redis 2.8.7 ] Release date: 5 Mar 2014 # UPGRADE URGENCY: LOW for Redis, LOW for Sentinel. However this release adds new features so users may want to upgrade in order to exploit the new functionalities. * [FIX] Sometimes the absolute config file path was obtained in a wrong way. This happened when there was a "dir" directive inside the config file and at the same time the configuration file was given as a relative path to redis-server or redis-sentinel executables. * [FIX] redis-cli: Automatically enter --slave mode when SYNC or PSYNC are called during an interactive session. * [FIX] Sentinel "IDONTKNOW" error removed as it does not made sense with the new Sentinel design. This error was actually a fix for a design error in the first implementation of Sentinel. * [FIX] Sentinel: added a missing exit() call to abort after config file checks at startup. This error was introduced with an improvement in a previous 2.8 release. * [FIX] BITCOUNT: fixed unaligned access causing issues in sparc and other archs not capable of dealing with unaligned accesses. This also makes the code faster in archs where unaligned accesses are allowed. * [FIX] Sentinel: better nodes fail over start time desynchronization to avoid split-brain during the voting process needed to get authorization to fail over. This means the system is less likely to need to retry and will fail over faster. No changes in behavior / correctness. * [FIX] Force INFO used_memory_peak to match peak memory. This generated some confusion among users even if it was not an actual bug. * [NEW] Sentinel unit tests and framework. More tests needed and units must be improved in order to have less false positives, but it is a start and features a debugging console that is useful to fix tests or to inspect bugs causing tests failures. * [NEW] New Sentinel events: +/-monitor and +set used to monitor when an instance to monitor is added or removed, or when a configuration is modified via SENTINEL SET. * [NEW] Redis-cli updated to use SCAN instead of random sampling via RANDOMKEY in order to implement --bigkeys feature. Moreover the implementation now supports pipelining and reports more information at the end of the scan. Much faster, much better. A special thank you to Michael Grunder for this improvement. * [NEW] redis-cli now supports a new --intrinsic-latency mode that is able to meter the latency of a system due to kernel / hypervisor. How to use it is explained at http://redis.io/topics/latency. * [NEW] New command BITPOS: find first bit set or clear in a bitmap. * [NEW] CONFIG REWRITE calls are now logged. --[ Redis 2.8.6 ] Release date: 13 Feb 2014 # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua scripts with EVALSHA and attached slaves and/or AOF persistence should consider upgrading ASAP. * [FIX] Fixed an critical EVALSHA script cache bug: scripts executed may not propagate to AOF / Slaves correctly under certain conditions. See issue #1549 at Github for more information. * [FIX] Fixed multiple bugs resulting into closing the link with master or slave during replication without good reasons. This will result in useless resynchronizations, or infinite loops where the replication link can't be established. * [FIX] Don't count the time needed to populate the buffers of clients waiting in MONITOR mode when populating the Slow Log entries. * [NEW] AOF write errors (like no space on device) no longer abort Redis if the fsync policy is none or every second. The database enters a read-only mode where every write is refused with an error. Normal operations are restored as soon as Redis is able to append again data to the AOF file. * [NEW] Sentinel now accepts SHUTDOWN command. --[ Redis 2.8.5 ] Release date: 4 Feb 2014 # UPGRADE URGENCY: HIGH for Redis, LOW for Sentinel. Redis users using Lua scripts with expires, and Redis users relying on the ability of Redis to block writes on RDB saving errors should plan to upgrade ASAP. * [FIX] Fixed a replication bug caused by Lua scripts + expired keys: keys could expire in the middle of scripts causing non-deterministic behavior. * [FIX] MISCONFIG error if condition fixed, the server was no longer able to stop writes on RDB misconfiguration after this error was introduced. * [FIX] REDIS_AOF_REWRITE_MIN_SIZE is now 64mb like example redis.conf default. * [FIX] Perform fflush() before fsync() in rio.c (bug without actual effects). * [FIX] Don't log MONITOR clients as disconnecting slaves. * [FIX] SENTINEL MASTER arity check fixed. Crashed the Sentinel instance when the command was given without arguments. * [NEW] Allow CONFIG and SHUTDOWN while in stale-slave state. * [NEW] Support for configurable TCP listen(2) backlog size. * [NEW] redis-cli supports SCAN via the --scan and --pattern options. * [NEW] SENTINEL SET master quorum via runtime API implemented. --[ Redis 2.8.4 ] Release date: 13 Jan 2014 # UPGRADE URGENCY: MODERATE for Redis and Sentinel. * [FIX] Makefile compatibility with non common make variants improved. * [FIX] SDIFF crash in very unlikely to trigger state fixed. * [FIX] Config rewriting fixed: don't wipe options unknown to the rewrite process. * [FIX] Set TCP port to 0 works again to disable TCP networking. * [FIX] Fixed replication with old Redis instances as masters by not sending REPLCONF ACK to them. * [FIX] Fix keyspace notifications rewrite and CONFIG GET output. * [FIX] Fix RESTORE TTL handling in 32 bit systems (32 bit overflow). * [NEW] Sentinel now has a run time configuration API. * [NEW] Log when we lost connection with master or slave. * [NEW] When instance is turned from slave to master now inherits the old master replication offset when possible. This improves the Sentinel failover procedure. |
||
fhajny
|
1377b63466 |
Update redis to 2.8.?
Changes: 2.8.3 * [FIX] Sentinel instance role sampling fixed, the system is now more reliable during failover and when reconfiguring instances with non matching configuration. * [FIX] Inline requests are now handled even when terminated with just LF. * [FIX] Replication timeout handling greatly improved, now the slave is able to ping the master while removing the old data from memory, and while loading the new RDB file. This avoid false timeouts sensed by masters. * [FIX] Fixed a replication bug involving 32 bit instances and big datasets hard to compress that resulted into more than 2GB of RDB file sent. * [FIX] Return error for inline requests with unbalanced quotes. * [FIX] Publish the slave replication offset even when disconnected from the master if there is still a cached master instance. 2.8.2 * [FIX] Sentinel better desynchronization to avoid split-brain elections where no Sentinel managed to get elected. * [FIX] Stop accepting writes on "MISCONF" error only if master, not slave. * [FIX] Reply to PING with an error on "MISCONF" errors. 2.8.1 * [FIX] Fixed a bug in "new Sentinel" config propagation. * [FIX] Fixed a false positive in Redis tests. 2.8.0 * [FIX] Fixed an error in rdbWriteRaw() that should have no practical impact. * [NEW] Log the new master when SLAVEOF command is used. * [NEW] Sentinel code synchronized with the unstable branch, the new Sentinel is a reimplementation that uses more reliable algorithms. 2.8.0 RC6 * [NEW] SCAN, SSCAN, HSCAN, ZSCAN commands. 2.8.0 RC5 * [FIX] redis-cli: don't crash with --bigkeys when the key no longer exist. * [FIX] Allow AUTH / PING when disconnected from slave and serve-stale-data is no. * [FIX] PSYNC: safer handling of PSYNC requests with offsets in the future. * [FIX] Replication: Fix master timeout detection. * [FIX] Replication: Correctly install the write handler after successful PSYNC. 2.8.0 RC4 * [FIX] Fixed a serious EVAL memory leak in the Lua stack. * [FIX] Fixed server startup when no IPv6 address exists in any interface. * [FIX] Send MISCONFIG error when BGSAVE fails because can't fork. * [FIX] Memory efficiency with large (> a few kbytes) values improved considerably. * [NEW] DEBUG SDSLEN for sds memory debugging. 2.8.0 RC3 * [FIX] Improved expired keys collection algorithm. Even under heavy load keys to be expired can't accumulate because of lack of CPU time. * [FIX] Replication speed regression fixed (issue #1238). * [FIX] Fixed an hard to trigger PSYNC bug. * [FIX] Fixed Issue #1240, ZUNIONSTORE could lead to wrong result. * [NEW] Add per-db average TTL information in INFO output. * [NEW] redis-benchmark improvements. * [NEW] dict.c API wrong usage detection. 2.8.0 RC2 * [FIX] Fixed a critical replication bug, see issue #1221. * [NEW] The new inline protocol now accepts quoted strings like, for example you can now type in a telnet session: set 'foo bar' "hello world\n". 2.8.0 RC1 * [NEW] Slaves are now able to partially resynchronize with the master, so most of the times a full resynchronization with the RDB creation in the master side is not needed when the master-slave link is disconnected for a short amount of time. * [NEW] Experimental IPv6 support. * [NEW] Slaves explicitly ping masters now, a master is able to detect a timed out slave independently. * [NEW] Masters can stop accepting writes if not enough slaves with a given maximum latency are connected. * [NEW] Keyspace changes notifications via Pub/Sub. * [NEW] CONFIG SET maxclients is now available. * [NEW] Ability to bind multiple IP addresses. * [NEW] Set process names so that you can recognize, in the "ps" command output, the listening port of an instance, or if it is a saving child. * [NEW] Automatic memory check on crash. * [NEW] CONFIG REWRITE is able to materialize the changes in the configuration operated using CONFIG SET into the redis.conf file. * [NEW] More NetBSD friendly code base. * [NEW] PUBSUB command for Pub/Sub introspection capabilities. * [NEW] EVALSHA can now be replicated as such, without requiring to be expanded to a full EVAL for the replication link. * [NEW] Better Lua scripts error reporting. * [NEW] SDIFF performance improved. * [FIX] A number of bugfixes. 2.6.17 * [FIX] redis-cli: fix big keys search when the key no longer exist. * [FIX] Allow AUTH / PING when disconnected from slave with serve-stale-data on. * [FIX] redis-benchmark: update help for new __rand_int__ form. * [FIX] Fix broken rdbWriteRaw() return value check in rdb.c (harmless). * [FIX] Log to what master a slave is going to connect to. * [FIX] Only run the fast active expire cycle if master & enabled. * [FIX] Fixed a replication bug involving 32 bit instances and big datasets hard to compress that resulted into more than 2GB of RDB file sent. |
||
mspo
|
450f792ed4 |
Import redis from wip!
Redis is a persistent key-value database with built-in net interface |