Path to this page:
Subject: CVS commit: pkgsrc/databases/redis
From: Filip Hajny
Date: 2017-08-02 21:53:37
Message id: 20170802195337.B5D16FACD@cvs.NetBSD.org
Log Message:
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.
Files: