Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0637b4ea45 | ||
|
|
4000bb2ee9 | ||
|
|
4e9acd4b82 | ||
|
|
4606f91d5e | ||
|
|
884c346797 |
+135
-11
@@ -1,16 +1,140 @@
|
||||
Hello! This file is just a placeholder, since this is the "unstable" branch
|
||||
of Redis, the place where all the development happens.
|
||||
Redis 7.4 release notes
|
||||
=======================
|
||||
|
||||
There is no release notes for this branch, it gets forked into another branch
|
||||
every time there is a partial feature freeze in order to eventually create
|
||||
a new stable release.
|
||||
--------------------------------------------------------------------------------
|
||||
Upgrade urgency levels:
|
||||
|
||||
Usually "unstable" is stable enough for you to use it in development environments
|
||||
however you should never use it in production environments. It is possible
|
||||
to download the latest stable release here:
|
||||
LOW: No need to upgrade unless there are new features you want to use.
|
||||
MODERATE: Program an upgrade of the server, but it's not urgent.
|
||||
HIGH: There is a critical bug that may affect a subset of users. Upgrade!
|
||||
CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP.
|
||||
SECURITY: There are security fixes in the release.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
https://download.redis.io/redis-stable.tar.gz
|
||||
|
||||
More information is available at https://redis.io
|
||||
================================================================================
|
||||
Redis 7.4 RC2 Released Thu 27 Jun 2024 10:00:00 IST
|
||||
================================================================================
|
||||
|
||||
Upgrade urgency LOW: This is the second Release Candidate for Redis 7.4.
|
||||
|
||||
Performance and resource utilization improvements
|
||||
=================================================
|
||||
* #13296 Optimize CPU cache efficiency
|
||||
|
||||
Changes to new 7.4 new features (compared to 7.4 RC1)
|
||||
=====================================================
|
||||
* #13343 Hash - expiration of individual fields: when key does not exist - reply with an array (nonexisting code for each field)
|
||||
* #13329 Hash - expiration of individual fields: new keyspace event: `hexpired`
|
||||
|
||||
Modules API - Potentially breaking changes to new 7.4 features (compared to 7.4 RC1)
|
||||
====================================================================================
|
||||
* #13326 Hash - expiration of individual fields: avoid lazy expire when called from a Modules API function
|
||||
|
||||
|
||||
================================================================================
|
||||
Redis 7.4 RC1 Released Thu 6 Jun 2024 10:00:00 IST
|
||||
================================================================================
|
||||
|
||||
Note: License changed - see LICENSE.txt
|
||||
|
||||
Upgrade urgency LOW: This is the first Release Candidate for Redis 7.4.
|
||||
|
||||
Here is a comprehensive list of changes in this release compared to 7.2.5.
|
||||
|
||||
New Features
|
||||
============
|
||||
* #13303 Hash - expiration of individual fields. 9 commands were introduced:
|
||||
- `HEXPIRE` and `HPEXPIRE` set the remaining time to live for specific fields
|
||||
- `HEXPIREAT` and `HPEXPIREAT` set the expiration time to a UNIX timestamp for specific fields
|
||||
- `HPERSIST` removes the expiration for specific fields
|
||||
- `HEXPIRETIME` and `HPEXPIRETIME` get the expiration time for specific fields
|
||||
- `HTTL` and `HPTTL` get the remaining time to live for specific fields
|
||||
* #13117 `XREAD`: new id value `+` to start reading from the last message
|
||||
* #12765 `HSCAN`: new [NOVALUES] flag to report only field names
|
||||
* #12728 `SORT`, `SORT_RO`: allow `BY` and `GET` options in cluster mode when the pattern maps to the same slot as the key
|
||||
* #12299 `CLIENT KILL`: new optional filter: `MAXAGE maxage` - retain connections older than `maxage` seconds
|
||||
* #12971 Lua: expose `os.clock()` API for getting the elapsed time of Lua code execution
|
||||
* #13276 Allow `SPUBLISH` command within `MULTI ... EXEC` transactions on replica
|
||||
|
||||
Bug fixes
|
||||
=========
|
||||
* #12898 `XREADGROUP`: fix entries-read inconsistency between master and replicas
|
||||
* #13042 `SORT ... STORE`: fix created lists to respect list compression and packing configs
|
||||
* #12817, #12905 Fix race condition issues between the main thread and module threads
|
||||
* #12577 Unsubscribe all clients from replica for shard channel if the master ownership changes
|
||||
* #12622 `WAITAOF` could timeout or hang if used after a module command that propagated effects only to replicas and not to AOF
|
||||
* #11734 `BITCOUNT` and `BITPOS` with nonexistent key and illegal arguments return an error, not 0
|
||||
* #12394 `BITCOUNT`: check for wrong argument before checking if key exists
|
||||
* #12961 Allow execution of read-only transactions when out of memory
|
||||
* #13274 Fix crash when a client performs ACL change that disconnects itself
|
||||
* #13311 Cluster: Fix crash due to unblocking client during slot migration
|
||||
|
||||
Security improvements
|
||||
=====================
|
||||
* #13108 Lua: LRU eviction for scripts generated with `EVAL` *** BEHAVIOR CHANGE ***
|
||||
* #12961 Restrict the total request size of `MULTI ... EXEC` transactions
|
||||
* #12860 Redact ACL username information and mark '*-key-file-pass configs' as sensitive
|
||||
|
||||
Performance and resource utilization improvements
|
||||
=================================================
|
||||
* #12838 Improve performance when many clients call `PUNSUBSCRIBE` / `SUNSUBSCRIBE` simultaneously
|
||||
* #12627 Reduce lag when waking `WAITAOF` clients and there is not much traffic
|
||||
* #12754 Optimize `KEYS` when pattern includes hashtag and implies a single slot
|
||||
* #11695 Reduce memory and improve performance by replacing cluster metadata with slot specific dictionaries
|
||||
* #13087 `SCRIPT FLUSH ASYNC` now does not block the main thread
|
||||
* #12996 Active memory defragmentation efficiency improvements
|
||||
* #12899 Improve performance of read/update operation during rehashing
|
||||
* #12536 `SCAN ... MATCH`: Improve performance when the pattern implies cluster slot
|
||||
* #12450 `ZRANGE ... LIMIT`: improved performance
|
||||
|
||||
Other general improvements
|
||||
==========================
|
||||
* #13133 Lua: allocate VM code with jemalloc instead of libc and count it as used memory *** BEHAVIOR CHANGE ***
|
||||
* #12171 `ACL LOAD`: do not disconnect all clients *** BEHAVIOR CHANGE ***
|
||||
* #13020 Allow adjusting defrag configurations while active defragmentation is running
|
||||
* #12949 Increase the accuracy of avg_ttl (the average keyspace keys TTL)
|
||||
* #12977 Allow running `WAITAOF` in scripts
|
||||
* #12782 Implement TCP keep-alive across most Unix-like systems
|
||||
* #12707 Improved error codes when rejecting scripts in cluster mode
|
||||
* #12596 Support `XREAD ... BLOCK` in scripts; rejected only if it ends up blocking
|
||||
|
||||
New metrics
|
||||
===========
|
||||
* #12849 `INFO`: `pubsub_clients` - number of clients in Pub/Sub mode
|
||||
* #12966 `INFO`: `watching_clients` - number of clients that are watching keys
|
||||
* #12966 `INFO`: `total_watched_keys` - number of watched keys
|
||||
* #12476 `INFO`: `client_query_buffer_limit_disconnections` - count client input buffer OOM events
|
||||
* #12476 `INFO`: `client_output_buffer_limit_disconnections` - count client output buffer OOM events
|
||||
* #12996 `INFO`: `allocator_muzzy` - memory returned to the OS but still shows as RSS until the OS reclaims it
|
||||
* #13108 `INFO`: `evicted_scripts` - number of evicted eval scripts. Users can check it to see if they are abusing EVAL
|
||||
* #12996 `MEMORY STATS`: `allocator.muzzy` - memory returned to the OS but still shows as RSS until the OS reclaims it
|
||||
* #12913 `INFO MEMORY` `mem_overhead_db_hashtable_rehashing` - memory resharding overhead (only the memory that will be released soon)
|
||||
* #12913 `MEMORY STATS': `overhead.db.hashtable.lut` - total overhead of dictionary buckets in databases
|
||||
* #12913 `MEMORY STATS': `overhead.db.hashtable.rehashing` - temporary memory overhead of database dictionaries currently being rehashed
|
||||
* #12913 `MEMORY STATS': `db.dict.rehashing.count` - number of top level dictionaries currently being rehashed
|
||||
* #12966 `CLIENT LIST`: `watch` - number of keys each client is currently watching
|
||||
|
||||
Modules API
|
||||
===========
|
||||
* #12985 New API calls: `RM_TryCalloc` and `RM_TryRealloc` - allow modules to handle memory allocation failures gracefully
|
||||
* #13069 New API call: `RM_ClusterKeySlot` - which slot a key will hash to
|
||||
* #13069 New API call: `RM_ClusterCanonicalKeyNameInSlot` - get a consistent key that will map to a slot
|
||||
* #12486 New API call: `RM_AddACLCategory` - allow modules to declare new ACL categories
|
||||
|
||||
Configuration parameters
|
||||
========================
|
||||
* #12178 New configuration parameters: `max-new-connections-per-cycle` and `max-new-tls-connections-per-cycle` to limit the number of new client connections per event-loop cycle
|
||||
* #7351 Rename some CPU configuration parameters for style alignment. Added alias to the old names to avoid breaking change
|
||||
|
||||
CLI tools
|
||||
=========
|
||||
* #10609 redis-cli: new `-t <timeout>` argument: specify server connection timeout in seconds
|
||||
* #11315 redis-cli: new `-4` and `-6` flags to prefer IPV4 or IPV6 on DNS lookup
|
||||
* #12862 redis-cli: allows pressing up arrow to return any command (including sensitive commands which are still not persisted)
|
||||
* #12543 redis-cli: add reverse history search (like Ctrl+R in terminals)
|
||||
* #12826 redis-cli: add `--keystats` and `--keystats-samples` to combines `--memkeys` and `--bigkeys` with additional distribution data
|
||||
* #12735 redis-cli: fix: `--bigkeys` and `--memkeys` now work on cluster replicas
|
||||
* #9411 redis-benchmark: add support for binary strings
|
||||
* #12986 redis-benchmark: fix: pick random slot for a node to distribute operation across slots
|
||||
|
||||
Happy hacking!
|
||||
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
#define REDIS_VERSION "255.255.255"
|
||||
#define REDIS_VERSION_NUM 0x00ffffff
|
||||
#define REDIS_VERSION "7.3.241"
|
||||
#define REDIS_VERSION_NUM 0x000703f1
|
||||
|
||||
Reference in New Issue
Block a user