diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6abc182775d814d9e59bdaad53676594e4e9906a..f5fe381fc178dee457fbb9b0f5bcf751b443e567 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,22 +1,24 @@
 ## Changelog
 
-## Unreleased
+## v2.4.0-RC1 (2024-11-21)
+### Added
+- Added new hash-field expiration commands (#1520)
+- Added missing `FT._LIST` and `BITFIELD_RO` commands (#1521)
+
+### Changed
+- Update `WATCH` command to accept `string|string[]` (#1476)
+- Optimize cluster slotmap with compact slot range object (#1493)
+
 ### Fixed
+- Fixed `EVAL_RO` cluster support (#1449)
 - Fixed PHP 8.4 compatibility with `stream_context_set_option()` (#1503)
 - Prevent named arguments runtime failure (#1509)
-- Mark GEOSEARCH as read-only to ensure execution on replica (#1481)
-- Fix eval_ro cluster support (#1449)
-
-### Changed
-- Use parallel on PHP-CS-Fixer (#1489)
-- Update watch command accepting string and string[] (#1476)
-- Optimize redis cluster slotmap with compact slot range object (#1493)
+- Mark `GEOSEARCH` as read-only to ensure execution on replica (#1481)
 
-### Added
-- Added testing with 8.0 (#1510)
+### Maintenance
+- Added CI testing with Redis 8.0 (#1510)
 - Added test coverage for compatibility with Redis 8.0 (#1513)
-- Added missing FT._LIST and BITFIELD_RO commands (#1521)
-- Added new hash-field expiration commands (#1520)
+- Use parallel on PHP-CS-Fixer (#1489)
 
 ## v2.3.0 (2024-11-21)
 ### Added
diff --git a/VERSION b/VERSION
index 93420e75a714e0104882d0a1d8f234a11cbc6149..c36c615772eb69c37952689107ec0294ce72c2b0 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.3.1-dev
\ No newline at end of file
+2.4.0-RC1
\ No newline at end of file
diff --git a/src/Client.php b/src/Client.php
index 8111b2ecdac2cb1cd7f9747e6e5b7b8bacdd3d09..ea08cbf2eec3b23e0ef271b927b10b2f50765d88 100644
--- a/src/Client.php
+++ b/src/Client.php
@@ -53,7 +53,7 @@ use Traversable;
  */
 class Client implements ClientInterface, IteratorAggregate
 {
-    public const VERSION = '2.3.1-dev';
+    public const VERSION = '2.4.0-RC1';
 
     /** @var OptionsInterface */
     private $options;