154 KiB
Changelog
All changes to phpredis will be documented in this file.
We're basing this format on Keep a Changelog, and PhpRedis adheres to Semantic Versioning.
[6.3.0RC1] - TBD
This release introduces support for dozens of new commands, including hash field expiration, Valkey’s DELIFEQ, and Redis vector set operations. It also delivers numerous bug fixes and performance improvements.
Sponsors 💖
- A-VISION
- Avtandil Kikabidze
- Geoffrey Hoffman
- Object Cache Pro for WordPress
- Open LMS
- Relay
- Salvatore Sanfilippo
- Ty Karok
Fixed
- Fix a possible segfault during failover 5ebb853e (rlerdorf)
- Fix an overflow bug in ZADD on Windows 35df8ad7 (michael-grunder)
- Fix errors and a warning b8de91c9 (michael-grunder)
- Fix
RedisClustersegfault f61e8cd7 (michael-grunder) - Fix passing NULL for hash expiry argument ca80ee0e (michael-grunder)
- Fix an off-by-one length calculation error 340f23b0 (michael-grunder)
- Fix hset fields handling 6b2f088d (yatsukhnenko)
- Fix HSetEx expiry argument handling 7805da75 (yatsukhnenko)
- Fix the echo liveness check when in sentinel mode 2acab399 (michael-grunder)
- Fix double -> int truncation warning 152fdda9 (michael-grunder)
- Fix
SIGABRTin PHP 8.4 with RedisArray 3c64b33f (Novynn) - Fixing segfault in cluster_update_slot b0ba827b (JacobBrownAustin)
- Fix typo d0b0c5cf (michael-grunder)
- Fix compiling with PHP 8.5.0 alpha3 and newer 1e6f5477 (wyattoday)
- Fix error length calculation + UB sanity check e73130fe (michael-grunder)
- Fix arguments order for
SETcommand f73f5fcc (yatsukhnenko)
Added
- Add
hgetwithmetamethod 7d3b2e4d (Pavlo Yatsukhnenko) - Add
maxRetriestoredis_sock_configuree9e9e495 (michael-grunder) - Implement vectorset commands 92dd256f, d80b7258, 7f9b1f41, 92716ed0, dc91631b, 1deca628, 96378b70, 0fda9f29, 0ed0fc05, d1d69005, 286fa630, 38115dec, c4b2ea6c, 6ce3bd53 (michael-grunder)
- Implement
GEOSEARCH[STORE]BYPOLYGON8d369f4d, f24814a4 (michael-grunder) - Implement Valkey's
DELIFEQcommand b1b0c191 (michael-grunder) - Add an INI setting returning 5.x legacy behavior -- readonly session on lock failure 8dada174 (arokettu)
- Implement several hash expiration commands 7350768c (michael-grunder)
- Introduce
Redis::serverNameandRedis::serverVersionmethods 056c2dbe cbaf095f fa3eb006 (yatsukhnenko) (michael-grunder) - New option 'database' for Redis class constructor 4f6a3ed1 (JakubOnderka)
- Implement
HGETEX,HSETEX,HGETDEL, and refactorHMGETce5b0fac (michael-grunder) - Implement
GETDELforRedisClusterd342e4ac (michael-grunder)
Changed
- Check for
dragonfly_versioninHELLOresponse 593ba012 (michael-grunder) - Simplify redis_unpack method calling 0a85bd82 (JakubOnderka)
- Refactor
getWithMetalogic 0445e683 (michael-grunder) - cleanup session temp file 3828c929 (remicollet)
- Make execHello protected 300c5fb2 (michael-grunder)
Documentation
- Update Relay sponsorship 7a69d73 (tillkruss)
- Fix markdown headlines 1d662f56 (tillkruss)
- document PECL configure options 2066cfad (tillkruss)
- Improve wording in README about project support 0ac01476 (tillkruss)
- Improve install instructions c0076036 (remicollet)
- Clean up README.md: fix typos, spelling, and grammar errors 09cd4c54 (Copilot)
- Refine parameter descriptions and examples in README f9f609e1 (joshtrichards)
- Link to the correct header d18db84c (wyattoday)
- Update README.md about supported PHP versions. b7a97e5e (AkameOuO)
- Broaden return type for Redis::hGetAll bfbab892 (mgiuffrida)
Tests/CI
- Add a regression test for
EVAL[SHA]22a2914b (michael-grunder) - Rework
HEXPIREtest inclusion + bump Valkey b83981aa (michael-grunder) - Add PHP 8.5 to CI 334937cb (yatsukhnenko)
- Attempt to fix flaky GitHub CI tests 80140003 (michael-grunder)
- Reorganize tests 807f806f (yatsukhnenko)
Internal/Performance
- Introduce
[[nodiscard]]type attribute where supported. 2d963e79 (michael-grunder) - Fix typo (s/sees/seeds/) 25e6d5fc (xabbuh)
- Fix an unused variable warning b48aa0d4 (michael-grunder)
- Fix several issues surfaced by
gcc -fanalyze8be2306e (michael-grunder) - Fix dead assignment d564e8cf (michael-grunder)
- Refactor
redis_replicaof_cmd659dc763 (michael-grunder) - Refactor several command handling macros into typesafe static functions 9802fc0e, 8f0931bb, 7c953d45, 950d2bc7, 601ebbff, c3a71631, b0040514, fae89fa9, f880e1f7, b90e27f2, 1db39089 (michael-grunder)
- Refactor
EVAL[SHA]command and add a regression test 6e5faf42 (michael-grunder) - New macros REDIS_RESPONSE_ERROR and REDIS_RETURN_ZVAL 614b86e4 (JakubOnderka)
- Remove wrapper macro which hides branching logic 58e1a04f (michael-grunder)
- Use continue not break if we get a NULL node 8685c49c (michael-grunder)
- Remove pointless casts 03837f02 (michael-grunder)
- Change
intflags tozend_boolsince we only use them as booleans 77691947 (michael-grunder) - Remove unused macros + simplify some logic 75acbb09 (michael-grunder)
[6.2.0] - 2025-03-24 (Github, PECL)
Sponsors 💖
-
Special thanks to Jakub Onderka for nearly two dozen performance improvements in this release!
Fixed
- Fix arguments order for
SETcommand f73f5fc (Pavlo Yatsukhnenko) - Fix error length calculation and UB sanity check e73130fe (michael-grunder)
- Invalidate slot cache on failed cluster connections c7b87843 (James Kennedy)
- Don't cast a uint64_t to a long faa4bc20 (michael-grunder)
- Fix potential NULL dereference 43e6cab8 (peter15914)
- Print cursor as unsigned 64 bit integer 138d07b6 (Bentley O'Kane-Chase)
- Fix XAUTOCLAIM argc when sending COUNT 0fe45d24 (michael-grunder)
Added
- Added
serverName()andserverVersion()introspection methods 056c2dbe cbaf095f fa3eb006 (Pavlo Yatsukhnenko) (michael-grunder) - Added
getWithMetamethod 9036ffca (Pavlo Yatsukhnenko) - Implement
GETDELcommand for RedisCluster d342e4ac (michael-grunder) - Introduce
Redis::OPT_PACK_IGNORE_NUMBERSoption f9ce9429 29e5cf0d (michael-grunder) - Implement Valkey >= 8.1
IFEQSEToption a2eef77f (michael-grunder) - Implement KeyDB's EXPIREMEMBER[AT] commands 4cd3f593 (michael-grunder)
- Set priority to 60 (for PIE installations) 9e504ede (Pavlo Yatsukhnenko)
Documentation
- Fix phpdoc type of
$pattern5cad2076 (OHZEKI Naoki) - Better documentation for the
$tlsOptionsparameter of RedisCluster 8144db37 (Jacob Brown)
Tests/CI
- Reorganize tests 807f806f (Pavlo Yatsukhnenko)
- Add details to the option doc block abb0f6cc (michael-grunder)
- Update CodeQL to v3 41e11417 a10bca35 (Pavlo Yatsukhnenko)
- Add PHP 8.4 to CI 6097e7ba (Pavlo Yatsukhnenko)
- Pin ubuntu version for KeyDB eb66fc9e 985b0313 (michael-grunder)
- Windows CI: update setup-php-sdk to v0.10 and enable caching f89d4d8f (Christoph M. Becker)
Internal/Performance
- Reduce buffer size for signed integer 044b3038 35c59880 (Bentley O'Kane-Chase)
- Create a strncmp wrapper 085d61ec (michael-grunder)
- Refactor and avoid allocation in rawcommand method f68544f7 (JakubOnderka)
- Switch from linked list to growing array for reply callbacks a551fdc9 42a42769 (JakubOnderka) (michael-grunder)
- Reuse redis_sock_append_auth method be388562 (JakubOnderka)
- Switch pipeline_cmd from smart_str to smart_string 571ffbc8 (JakubOnderka)
- Remove unused redis_debug_response method from library.c 7895636a (JakubOnderka)
- Optimise HMGET method 2434ba29 (JakubOnderka)
- Avoid unnecessary allocation in redis_hset_cmd aba09933 (JakubOnderka)
- Avoid unnecessary allocation in redis_hdel_cmd 4082dd07 (JakubOnderka)
- Avoid unnecessary allocation in redis_key_varval_cmd 99650e15 (JakubOnderka)
- Use zval_get_tmp_string method that is faster when provided zval is string f6906470 (JakubOnderka)
- Optimise constructing Redis command string 2a2f908f (JakubOnderka)
- If no command is issued in multi mode, return immutable empty array 5156e032 (JakubOnderka)
- Test for empty pipeline and multi 426de2bb (JakubOnderka)
- Optimise method array_zip_values_and_scores 400503b8 (JakubOnderka)
- Faster parameter parsing in redis_key_cmd and redis_key_long_val_cmd 83a19656 (JakubOnderka)
- Use immutable empty array in Redis::hKeys 3a2f3f45 (JakubOnderka)
- Use immutable empty array in Redis::exec 60b5a886 (JakubOnderka)
- Do not allocate empty string or string with one character 64da891e (JakubOnderka)
- Initialize arrays with known size 99beb922 (JakubOnderka)
- Use smart str for constructing pipeline cmd b665925e (JakubOnderka)
[6.1.0] - 2024-10-04 (Github, PECL)
NOTE: There were no changes to C code between 6.1.0RC2 and 6.1.0.
Documentation
- Update package.xml to make it clearer that we support many key-value stores 52e69ede (Remi Collet)
- Fix redis.io urls 0bae4bb0 (Vincent Langlet)
Tests/CI
- Fix 2 tests with redis 6.2 cc1be322 (Remi Collet)
Sponsors 💖
Contributors to this release 💖
@michael-grunder, @yatsukhnenko, @bitactive, @OrangeJuiced, @crocodele, @kalifg, @divinity76, @PlavorSeol, @kjoe, @tstarling, @acorncom, @tuxmartin, @BenMorel, @szepeviktor, @SplotyCode, @taka-oyama, @PROFeNoM, @woodongwong, @RobiNN1, @vtsykun, @solracsf, @tillkruss, @deiga, @tutuna @VincentLanglet
[6.1.0RC2] - 2024-09-23 (Github, PECL)
Fixed
- Fixed a
SIGABRTerror in PHP 8.4 a75a7e5a (Michael Grunder) - Clean up code for unsupported versions of PHP 37cebdd7 (Remi Collet)
- Add
SessionHelpers.phptopackage.xmle9474b80 (Remi Collet) - 8.4 implicit null fix, bump version bff3a22e 30c8f90c (Remi Collet)
Changed
- Raised minimum supported PHP version to 7.4 8b519423 (Michael Grunder)
Removed
- Removed erroneously duplicated changelog entries 40c89736 (Michael Grunder)
Tests/CI
- Move to upload artifacts v4 9d3805009 (Michael Grunder)
Added
- Added
composer.jsonto support PIE (PHP Installer for Extensions) b59e35a6 (James Titcumb)
[6.1.0RC1] - 2024-08-04 (GitHub, PECL)
Fixed
- Fix random connection timeouts with Redis Cluster. eb7f31e7 (Jozsef Koszo) #1142 #1385 #1633 #1707 #1811 #2407
- Fix argument count issue in HSET with associative array 6ea5b3e0 (Viktor Djupsjöbacka)
- SRANDMEMBER can return any type because of serialization. 6673b5b2 (michael-grunder)
- Fix HRANDFIELD command when WITHVALUES is used. 99f9fd83 (Michael Grunder) #2524
- Allow context array to be nullable 50529f56 (michael-grunder) #2521
- Fix a macOS (M1) compiler warning. 7de29d57 (michael-grunder)
GETEXdocumentation/updates and implentation inRedisCluster981c6931 (michael-grunder) #2512- Refactor redis_script_cmd and fix to
flushsubcommand. 7c551424 (Pavlo Yatsukhnenko) - Update liveness check and fix PHP 8.4 compilation error. c139de3a (michael-grunder)
- Rework how we declare ZSTD min/max constants. 34b5bd81 (michael-grunder) #2487
- Fix memory leak if we fail in ps_open_redis. 0e926165 (michael-grunder)
- Fix segfault and remove redundant macros a9e53fd1 (Pavlo Yatsukhnenko)
- Fix PHP 8.4 includes a51215ce #2463 (michael-grunder)
- Handle arbitrarily large
SCANcursors properly. 2612d444 e52f0afa #2454 #2458 (michael-grunder) - Improve warning when we encounter an invalid EXPIRY in SET 732e466a #2448 (michael-grunder)
- Fix Arginfo / zpp mismatch for DUMP command 50e5405c (Pavlo Yatsukhnenko)
- RedisCluster::publish returns a cluster_long_resp 14f93339 (Alexandre Choura)
- Fix segfault when passing just false to auth. 6dc0a0be #2430 (michael-grunder)
- the VALUE argument type for hSetNx must be the same as for hSet df074dbe (Uładzimir Tsykun)
- Other fixes e18f6c6d 3d7be358 2b555c89 fa1a283a (michael-grunder) 37c5f8d4 (Viktor Szépe)
Added
- Compression support for PHP sessions. da4ab0a7 #2473 (bitactive)
- Support for early_refresh in Redis sessions to match cluster behavior b6989018 (Bitactive)
- Implement WAITAOF command. ed7c9f6f (michael-grunder)
Removed
- PHP 7.1, 7.2, and 7.3 CI jobs d68c30f8 dc39bd55 #2478 (Michael Grunder)
Changed
Documentation
- Many documentation fixes. eeb51099 (Michael Dwyer) #2523
- fix missing <code> tags f865d5b9 (divinity76)
- Mention Valkey support 5f1eecfb (PlavorSeol)
- Mention KeyDB support in README.md 37fa3592 (Tim Starling)
- Remove mention of pickle c7a73abb (David Baker)
- Add session.save_path examples 8a39caeb (Martin Vancl)
- Tighter return types for Redis::(keys|hKeys|hVals|hGetAll)() 77ab62bc (Benjamin Morel)
- Update stubs 4d233977 ff305349 12966a74 a4a283ab (michael-grunder) 8f8ff72a (Takayasu Oyama) 5d293245
- Fix config.m4 when using custom dep paths ece3f7be (Michael Grunder) #2453 #2452
- Fix retry_internal documentation 142c1f4a (SplotyCode)
- Fix anchor link 9b5cad31 (Git'Fellow)
- Fix typo in link bfd379f0 #2349 (deiga)
- Fix Fedora package url 60b1ba14 717713e1 (Dmitrii Kotov)
- Update Redis Sentinel documentation to reflect changes to constructor in 6.0 release dc05d65c (Pavlo Yatsukhnenko) #2381
Tests/CI
- Avoid fatal error in test execution. 57304970 (Michael Grunder) #2510
- Refactor unit test framework. b1771def (Michael Grunder) #2509
- Get unit tests working in
php-cgi. b808cc60 (michael-grunder) #2507 - Switch to
ZEND_STRLin more places. 7050c989 f8c762e7 (Michael Grunder) #2505 - Workaround weird PHP compiler crash. d3b2d87b (michael-grunder)
- Refactor tests (formatting, modernization, etc). dab6a62d c6cd665b 78b70ca8 3c125b09 18b0da72 b88e72b1 #2492 0f94d9c1 59965971 3dbc2bd8 9b90c03b c0d6f042 (michael-grunder)
- Spelling fixes 0d89e928 (michael-grunder)
- Added Valkey support. f350dc34 (michael-grunder)
- Add a test for session compression. 9f3ca98c (michael-grunder) #2473 #2480
- Test against valkey a819a44b (michael-grunder)
- sessionSaveHandler injection. 9f8f80ca (Pavlo Yatsukhnenko)
- KeyDB addiions 54d62c72 d9c48b78 #2466 (michael-grunder)
- Add PHP 8.3 to CI 78d15140 (Róbert Kelčák) e051a5db #2427 (Pavlo Yatsukhnenko)
- Use newInstance in RedisClusterTest 954fbab8 (Pavlo Yatsukhnenko)
- Use actions/checkout@v4 f4c2ac26 (Pavlo Yatsukhnenko)
- Cluster nodes from ENV eda39958 0672703b (Pavlo Yatsukhnenko)
- Ensure we're talking to redis-server in our high ports test. 7825efbc (michael-grunder)
- Add missing option to installation example 2bddd84f (Pavlo Yatsukhnenko) #2378
- Fix typo in link 8f6bc98f (Timo Sand)
- Update tests to allow users to use a custom class. 5f6ce414 (michael-grunder)
[6.0.2] - 2023-10-22 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix deprecation error when passing null to match_type parameter. b835aaa3 (Pavlo Yatsukhnenko)
- Fix flaky test and OBJECT in a pipeline. a7f51f70 (Michael Grunder)
- Find our callback by pattern with PSUBSCRIBE 2f276dcd (Michael Grunder)
[6.0.1] - 2023-09-23 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix memory leak and segfault in Redis::exec 362e1141 (Pavlo Yatsukhnenko), (Markus Podar)
- Fix unknown expiration modifier 264c0c7e, 95bd184b (Pavlo Yatsukhnenko)
Added
- Add missing option to exampleA 3674d663 (Till Krüss)
- Update sentinel documentation 849bedb6, 1ad95b63 (Joost OrangeJuiced)
[6.0.0] - 2023-09-09 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
There were no changes between 6.0.0 and 6.0.0RC2
[6.0.0RC2] - 2023-08-20 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix arginfo for arguments that default to null 8d99b7d1 (Nicolas Grekas)
- Fix C99 usages 54d9ca45 (Remi Collet)
- Raise minimal supported version to 7.2 e10b9a85 (Remi Collet)
[6.0.0RC1] - 2023-08-01 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix restoring keys when using compression 82e08723 (Till Krüss)
- Fix missing auth in RedisSentinel stub 5db85561 (Lu Fei)
- Fix RedisSentinel pconnect check 42cbd88a (Pavlo Yatsukhnenko)
- Fix NULL-pointer dereferences and handle possible UB 36457555 (Pavlo Yatsukhnenko)
- Fix security alerts ee210f86, fb6a297c (Pavlo Yatsukhnenko), (Michael Grunder)
- Fix segfault 55bf0202 (Pavlo Yatsukhnenko)
- Fix default host length c40f9d6c (Pavlo Yatsukhnenko)
- Fix redis session standalone stream ssl context ed10f365, d1bc6727, 2ff11df5 (patricio.dorantes)
- Fix segfault with session+tls a471c87a (Pavlo Yatsukhnenko)
- Fix non standards conforming prototypes. b3ce0486 (Michael Grunder)
- Avoid registering the same replicas multiple times f2bfd723 (Marius Adam)
- Better unix:// or file:// detection. d05d301b (Michael Grunder)
- Future proof our igbinary header check 69355faa (Michael Grunder)
- Fix BITOP cross-slot bug af13f951 (Michael Grunder)
- SENTINEL RESET returns a long. 0243dd9d (Michael Grunder)
- Fix redis_sock_read_multibulk_multi_reply_loop logic d9cb5946, 5a643b62 (Pavlo Yatsukhnenko)
- Fix RPOP to unserialize/decompress data. 02c91d59 (Michael Grunder)
- Fix testObject for redis 7.2 fea19b52, dcb95a3f (Remi Collet)
- Fix bug: the pipeline mode socket return an unexpected result after reconnecting a3327d9d (thomaston)
- Fix stub files 9aa5f387, 74cf49f5, 8b1eafe8, e392dd88, b5ea5fd7, 71758b09, 2a6dee5d (Nicolas Grekas), (Michael Grunder)
- Update documentation b64d93e1, 703d71b5, eba1c6d2, 0f502c9e, 130b5d0b, 21c3ef94, b7bf22d4, 50151e7a, b9950727, ab4ce4ab, 8d80ca5b, c4de8667, 6982941b, 375d093d, 43da8dd9, 71344612, b9de0b97, 2d8a8a44, a2b0c86f, e0b24be1, e609fbe8, c4aef956, df50b2ad, cc2383f0, 0dd2836f, 7d5db510, 99340889, 70a55f3e, b04684d4, 980ea6b1, bb06ffa3, b8679d7a, 854f3aa4, a5c47901, cf63e96e, f05ba819, 17db2328, 450904f7, 114f4d60, 142bddf0, 87fa36d6, 531177d4, ecf65144, 53d142d9, c14a9e3a, 72f8eb25, 872b6931 (Karina Kwiatek), (Nicolas Grekas), (Muhammad Dyas Yaskur), (sergkash7), (Dawid Polak), (Michael Grunder), (Yurun), (twosee), (Juha), (Till Krüss)
Changed
- Allow to pass null as iterator 14d121bb (Pavlo Yatsukhnenko)
- Add NOMKSTREAM option to XADD command. f9436e25 (Pavlo Yatsukhnenko)
- Don't allow reconnect on read response 5a269ab6 (Pavlo Yatsukhnenko)
- Reset multi/pipline transaction on pconnect close 0879770a (Pavlo Yatsukhnenko)
- Use read_mbulk_header helper where possible ca8b4c93 (Pavlo Yatsukhnenko)
- Allow to pass null as auth argument 41517753 (Pavlo Yatsukhnenko)
- Refactor redis_parse_client_list_response 68136a29, aaa4c91a, 1fb2935b, cf2c052c (Pavlo Yatsukhnenko)
- Refactor subscribe/unsubscribe 3c9e159c (Pavlo Yatsukhnenko)
- Change PHPREDIS_CTX_PTR type de3635da (Pavlo Yatsukhnenko)
- Refactor redis_parse_info_response 982bd13b (Pavlo Yatsukhnenko)
- Allow IPv6 address within square brackets c28ad7bb (Pavlo Yatsukhnenko)
- Allow multiple field-value pairs for hmset command. e858e8e3 (Pavlo Yatsukhnenko)
- Refactor MINIT and use @generate-class-entries in stub files 3675f442 (Remi Collet)
- Use spl_ce_RuntimeException 3cd5ac1e, a7e5ea64 (Remi Collet)
- Regenerate arginfo using 8.2.0 a38e08da (Remi Collet)
- Refactor client command a8d10291 (Pavlo Yatsukhnenko)
- Pull COUNT/ANY parsing into a helper function d67b2020 (Michael Grunder)
- Return false or NULL on empty lpos response 39a01ac7 (Michael Grunder)
- BLPOP with a float timeout a98605f2, dc9af529 (Michael Grunder)
- Make sure we set an error for key based scans 98fda1b8 (Michael Grunder)
- Add back a default switch case for setoption handler 87464932 (Michael Grunder)
- Update stubs so the tests pass in strict mode bebd398c (Michael Grunder)
- Move where we generate our salt d2044c9f (Michael Grunder)
- Refactor XINFO handler 3b0d8b77 (Michael Grunder)
- Refactor and fix XPENDING handler 457953f4 (Michael Grunder)
- Refactor FLUSHDB and update docs. 54a084e5 (Michael Grunder)
- Add missing directed node command to docs and refactor stubs. 5ac92d25 (Michael Grunder)
- Refactor BITPOS and implement BIT/BYTE option. 4d8afd38 (Michael Grunder)
- INFO with multiple sections 44d03ca0 (Michael Grunder)
- Refactor SLOWLOG command d87f1428 (Michael Grunder)
- Refactor SORT and add SORT_RO command 8c7c5a3a (Michael Grunder)
- Use ZEND_STRL in redis_commands.c 78de25a3 (Pavlo Yatsukhnenko)
- Refactor PubSub command 2a0d1c1e (Pavlo Yatsukhnenko)
- Refactor SLAVEOF handler f2cef8be (Michael Grunder)
- Refactor ACL command 504810a5 (Pavlo Yatsukhnenko)
- Use fast_zpp API 376d4d27 (Pavlo Yatsukhnenko)
- Fix XAUTOCLAIM response handler 0b7bd83f (Michael Grunder)
- Refactor
commandcommand ff863f3f (Pavlo Yatsukhnenko) - Refactor rawCommand and WAIT 79c9d224 (Michael Grunder)
- Refactor SELECT command 86f15cca (Michael Grunder)
- Refactor SRANDMEMBER command. f62363c2 (Michael Grunder)
- Refactor OBJECT command. acb5db76 (Michael Grunder)
- Refactor gen_varkey_cmd 3efa59cb (Michael Grunder)
- Refactor MGET command. 8cb6dd17 (Michael Grunder)
- Refactor INFO and SCRIPT commands. 3574ef08 (Michael Grunder)
- Refactor MSET and MSETNX commands. 6d104481 (Michael Grunder)
- Refactor HMSET command. 90eb0470 (Michael Grunder)
- Refactor PFCOUNT command. 19fd7e0c (Michael Grunder)
- Refactor SMOVE command. 204a02c5 (Michael Grunder)
- Rework ZRANGE argument handling. aa0938a4 (Michael Grunder)
- Refactor a couple more command methods. 5b560ccf, c8224b93, 40e1b1bf, ccd419a4 (Michael Grunder)
- Refactor HMGET command bb66a547 (Michael Grunder)
- Refactor CLIENT command 77c4f7a3 (Pavlo Yatsukhnenko)
- Refactor redis_long_response f14a80db (Pavlo Yatsukhnenko)
- Synchronize Redis and RedisSentinel constructors ebb2386e (Pavlo Yatsukhnenko)
- Use redis_sock_connect on connect f6c8b9c6 (Pavlo Yatsukhnenko)
- Auto-select db in redis_sock_server_open 6930a81c (Pavlo Yatsukhnenko)
- Use on-stack allocated valiables 7a055cad (Pavlo Yatsukhnenko)
Added
- Add XAUTOCLAIM command 01f3342c (Pavlo Yatsukhnenko)
- Add SYNC arg to FLUSHALL and FLUSHDB, and ASYNC/SYNC arg to SCRIPT FLUSH 750b6cf3 (Pavlo Yatsukhnenko)
- Add reset command 947a2d38 (Pavlo Yatsukhnenko)
- Add hRandField command fe397371 (Pavlo Yatsukhnenko)
- Add PXAT/EXAT arguments to SET command. 0a160685 (Pavlo Yatsukhnenko)
- Add GETEX, GETDEL commands. 11861d95 (Pavlo Yatsukhnenko)
- Add FAILOVER command. 4b767be7 (Pavlo Yatsukhnenko)
- Backoff settings in constructor e6b3fe54 (Pavlo Yatsukhnenko)
- Add the COUNT argument to LPOP and RPOP df97cc35 (Pavlo Yatsukhnenko)
- Unsubscribe from all channels 0f1ca0cc (Pavlo Yatsukhnenko)
- Add lPos command. 687a5c78 (Pavlo Yatsukhnenko)
- Add the ANY argument to GEOSEARCH and GEORADIUS bf6f31e3 (Pavlo Yatsukhnenko)
- Add 'BIT'/'BYTE' modifier to BITCOUNT + tests a3d2f131 (Michael Grunder)
- Add missing configureoption entries in package.xml 59053f10 (Michele Locati)
- Implement CONFIG RESETSTAT 239678a0 (Michael Grunder)
- SINTERCARD and ZINTERCARD commands 64300508 (Michael Grunder)
- LCS command c0e839f6 (Michael Grunder)
- EXPIRETIME and PEXPIRETIME f5b2a09b (Michael Grunder)
- [B]LMPOP and [B]ZMPOP commands 6ea978eb (Michael Grunder)
- Implement new RESTORE options 9a3fe401 (Michael Grunder)
- Add new Redis 6.2.0 XTRIM options 6b34d17f (Michael Grunder)
- Implement AUTH/AUTH2 arguments for MIGRATE 114d79d1 (Michael Grunder)
- Implement CONFIG REWRITE 525958ea (Michael Grunder)
- Implement Redis 7.0.0 [P]EXPIRE[AT] options 872ae107 (Michael Grunder)
- Variadic CONFIG GET/SET 36ef4bd8, a176f586 (Michael Grunder)
- EVAL_RO and EVALSHA_RO f3a40830 (Michael Grunder)
- Implement ZRANGESTORE and add ZRANGE options 71bcbcb9 (Michael Grunder)
- XGROUP DELCONSUMER and ENTRIESREAD 1343f500 (Michael Grunder)
- Expose the transferred number of bytes e0a88b7b, 90828019, 7a4cee2d (Pavlo Yatsukhnenko), (Michael Grunder)
- TOUCH command dc1f2398 (Michael Grunder)
- Redis Sentinel TLS support f2bb2cdb (Pavlo Yatsukhnenko)
- Add the CH, NX, XX arguments to GEOADD 2bb64038, e8f5b517 (Pavlo Yatsukhnenko)
- Implement SMISMEMBER for RedisCluster abfac47b (Michael Grunder)
- Implement ssubscribe/sunsubscribe 7644736e (Pavlo Yatsukhnenko)
- Implement BLMOVE and add LMOVE/BLMOVE to cluster. 121e9d9c (Michael Grunder)
- Implement LPOS for RedisCluster 7121aaae (Michael Grunder)
- Implement GEOSEARCH and GEOSEARCHSTORE for RedisCluster. fa5d1af9 (Michael Grunder)
- Implement HRANDFIELD for RedisCluster e222b85e (Michael Grunder)
- Implement COPY for RedisCluster 40a2c254 (Michael Grunder)
- Implement new ZSET commands for cluster 27900f39 (Michael Grunder)
- Add cluster support for strict sessions and lazy write b6cf6361 (Michael Grunder)
- Add function command 90a0e9cc (Pavlo Yatsukhnenko)
- Add FCALL/FCALL_RO commands 7c46ad2c (Pavlo Yatsukhnenko)
Removed
- Remove unused macros 831d6118 (Pavlo Yatsukhnenko)
[5.3.7] - 2021-02-15 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
There were no changes between 5.3.7 and 5.3.7RC2
[5.3.7RC2] - 2021-02-12 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
There were no changes between 5.3.7RC2 and 5.3.7RC1
[5.3.7RC1] - 2021-02-02 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix RedisArray::[hsz]scan and tests 08a9d5db, 0264de18, (Pavlo Yatsukhnenko), (Michael Grunder)
- Fix RedisArray::scan 8689ab1c (Pavlo Yatsukhnenko)
- Fix LZF decompression logic 0719c1ec (Michael Grunder)
[5.3.6] - 2021-01-17 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fix a segfault in RedisArray::del d2f2a7d9 (Pavlo Yatsukhnenko)
[5.3.5] - 2021-12-18 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fixed typo in cluster_scan_resp 44affad2
[5.3.5RC1] - 2021-11-16 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
Fixed
- Fixed segfault in redis_setoption_handler #2030 692e4e84 (Pavlo Yatsukhnenko)
- Fix masters array in the event of a cluster failover bce692962 #2025 (Bar Shaul)
- Fix 32bit type error 672dec87f (#1956) (Remi Collet)
- Fix radix character in certain locales #1893 89a871e24 (Pavlo Yatsukhnenko)
- ZSTD Validation fix 6a77ef5cd (Michael Grunder)
- Remove superfluous typecast b2871471f (Remi Collet)
- Updated documentation f84168657, d017788e7, 20ac84710, 0adf05260, aee29bf73, 09a095e72, 12ffbf33a, ff331af98, a6bdb8731, 305c15840, 1aa10e93a, d78b0c79d, c6d37c27c, a6303f5b9, d144bd2c7, a6fb815ef, 9ef862bc6 (neodisco, Billy Wilson, Clément Tessier, wangqr, T. Todua, Naphat Deepar, dengliming, Poplary, Maxime Cornet, Michael Grunder, Emanuele Filannino, MiRacLe, Michael Grunder)
- Travis CI Fixes a43f4586e, 4fde8178f, 7bd5415ac, fdb8c4bb7, d4f407470 (Pavlo Yatsukhnenko)
- Minor fixes/cleanup 2e190adc1, 99975b592, 9d0879fa5, 22b06457b, (Pavlo Yatsukhnenko)
- Fix RedisArray constructor bug 85dc883ba (Pavlo Yatsukhnenko)
Changed
- Moved to GitHub Actions 4d2afa786, 502d09fd5 (Pavlo Yatsukhnenko)
- Use more appropriate array iteration macro 6008900c2 (Pavlo Yatsukhnenko)
- Clean up session tests ab25ae7f3 (Michael Grunder)
- RedisArray refactors 1250f0001, 017b2ea7f, 37ed3f079 (Pavlo Yatsukhnenko)
- Use zend_parse_parameters_none helper a26b14dbe (Remi Collet)
Added
- Support for various exponential backoff strategies #1986, #1993, 732eb8dcb 05129c3a3 5bba6a7fc (Nathaniel Braun)
- Added experimental support for detecting a dirty connection by trying to determine if the underlying stream is readable. d68579562 #2013 (Michael Grunder)
- Created distinct compression utility methods (pack/unpack) #1939 da2790aec (Michael Grunder)
- SMISMEMBER Command #1894 ae2382472, ed283e1ab, (Pavlo Yatsukhnenko)
[5.3.4] - 2021-03-24 (GitHub, PECL)
Sponsors 💖
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
Fixed
- Fix multi/pipeline segfault on Apple silicon #1917 e0796d48 (Michael Grunder)
- Pass compression flag on HMGET in RedisCluster #1945 edc724e6 (Adam Olley)
- Abide by ZSTD error return constants #1936 8400ed1c (Michael Grunder)
- Fix timing related CI session tests 9b986bf8 (Michael Grunder)
[5.3.3] - 2021-02-01 (GitHub, PECL)
Sponsors 💖
- Audiomack
- BlueHost
- Redis Cache Pro for WordPress
- Avtandil Kikabidze
- Oleg Babushkin
- Zaher Ghaibeh
- BatchLabs
Fixed
- Fixed Windows includes for PHP 8 270b4db8 (Jan-E)
- Fix hash_ops for PHP 8.0.1 87297cbb (defender-11)
- Disable clone for Redis and RedisCluster objects. Presently they segfault. cd05a344 (Michael Grunder)
[5.3.2] - 2020-10-22 (GitHub, PECL)
Sponsors 💖
Fixed
- Verify SET options are strings before testing them as strings 514bc371 (Michael Grunder)
- Fix cluster segfault when dealing with NULL multi bulk replies in RedisCluster 950e8de8 (Michael Grunder, Alex Offshore)
- Fix xReadGroup() must return message id 500916a4 (Pavlo Yatsukhnenko)
- Fix memory leak in rediscluster session handler b2cffffc (Pavlo Yatsukhnenko)
- Fix XInfo() returns false if the stream is empty 5719c9f7, 566fdeeb (Pavlo Yatsukhnenko, Michael Grunder)
Changed
- Use "%.17g" sprintf format for doubles as done in Redis server. 32be3006 (Pavlo Yatsukhnenko)
- Relax requirements on set's expire argument 36458071 (Michael Grunder)
- Refactor redis_sock_check_liveness c5950644 (Pavlo Yatsukhnenko)
- PHP8 compatibility a7662da7, f4a30cb2, 17848791 (Pavlo Yatsukhnenko, Remi Collet)
- Update documentation c9ed151d, 398c99d9 (Ali Alwash, Gregoire Pineau)
Added
- Add
Redis::OPT_NULL_MULTIBULK_AS_NULLsetting to treat NULL multi bulk replies asNULLinstead of[]. 950e8de8 (Michael Grunder, Alex Offshore) - Allow to specify stream context for rediscluster session handler a8daaff8, 4fbe7df7 (Pavlo Yatsukhnenko)
- Add new parameter to RedisCluster to specify stream ssl/tls context. f771ea16, 72024afe (Pavlo Yatsukhnenko)
- Add new parameter to RedisSentinel to specify auth information 81c502ae (Pavlo Yatsukhnenko)
[5.3.1] - 2020-07-06 (GitHub, PECL)
Sponsors 💖
Fixed
- Properly clean up on session start failure 066cff6a (Michael Grunder)
- Treat NULL as a failure for redis_extract_auth_info 49428a2f, 14ac969d (Michael Grunder)
- Don't dereference a NULL zend_string or try to efree it ff2e160f, 7fed06f2 (Michael Grunder)
- Fix config.m4 messages and test for and include php_hash.h 83a1b7c5, 3c56289c, 08f202e7, (Remi Collet)
Added
- Add openSUSE installation instructions 13a168f4 (Pavlo Yatsukhnenko)
Removed
- Remove EOL Fedora installation instructions b4779e6a (Remi Collet)
[5.3.0] - 2020-06-30 (GitHub, PECL)
Sponsors 💖
There were no changes between 5.3.0RC2 and 5.3.0
[5.3.0RC2] - 2020-06-26 (GitHub, PECL)
Sponsors 💖
Fixed
-
Fix LZ4 configuration and use pkg-config if we have it df398cb0 (Remi Collet)
-
Make sure persistent pool ID is NULL terminated 0838b5bd, 57bb95bf (Michael Grunder)
Changed
- Run LZ4 tests in Travis 3ba3f06d (Michael Grunder)
[5.3.0RC1]
Sponsors 💖
Added
-
Support for Redis 6 ACLs a311cc4e (Michael Grunder)
-
LZ4 Compression 04def9fb (Ilia Alshanetsky, Michael Grunder)
-
Support for new Redis 6 arguments (XINFO FULL, SET KEEPTTL) a0c53e0b, f9c7bb57 (Victor Kislov, Michael Grunder)
-
Support for TLS connections 890ee0e6, b0671296 (Pavlo Yatsukhnenko)
-
New option Redis::SCAN_PREFIX, Redis::SCAN_NOPREFIX e80600e2 (Pavlo Yatsukhnenko)
-
Configurable unit test authentication arguments e37f38a3, 201a9759 (Pavlo Yatsukhnenko, Michael Grunder)
Fixed
-
Improved cluster slot caching mechanism to fix a couple of bugs and make it more efficient. 5ca4141c (Michael Grunder)
-
Stop calling Redis constructor when creating a RedisArray e41e19a8 (Pavlo Yatsukhnenko)
-
Use ZEND_LONG_FMT instead of system
long5bf88124 (Michael Grunder) -
Use long for SCAN iteration to fix potential overflow f13f9b7c (Victor Kislov)
-
Fix config.m4 to test for the variable $PHP_REDIS_JSON and not the literal PHP_REDIS_JSON 20a3dc72 (Mizuki Nakano)
-
Fix compiler warnings b9b383f4, 215828e (Remi Collet, Pavlo Yatsukhnenko)
-
Avoid use-after-free of RediSock 8c45816d (Pavlo Yatsukhnenko)
-
Fixed ZADD arginfo a8e2b021 (Pavlo Yatsukhnenko)
Changed
-
Store AUTH information in flags RedisSock rather than duplicating information. 58dab564 (Pavlo Yatsukhnenko)
-
Refactor redis_sock_get_connection_pool logic. 73212e1 (Pavlo Yatsukhnenko)
-
Updated documentation to show LPUSH and RPUSH are variadic and fixed DEL documentation. 92f8dde1 (Michael Grunder)
-
Authenticate in redis_server_sock_open 4ef465b5 (Pavlo Yatsukhnenko)
-
Dynamically include json.so in unit tests based on configuration 0ce7ca2f ((Michael Grunder)
-
Update save_path logic in Redis Cluster session unit tests dd66fce (Pavlo Yatsukhnenko)
-
Refactoring various bits of logic bbcf32a3, a42cf189, 460c8f29, b7f9df75, (Pavlo Yatsukhnenko)
-
Use the portable
ZEND_LONG_FORMATfamily instead of C format specifiers b9b383f4 (Remi Collet) -
PHP 8 compatibility 9ee94ca4, 7e4c7b3e (Pavlo Yatsukhnenko)
-
Refactor PHPREDIS_GET_OBJECT macro d5dadaf6, 190c0d34 (Pavlo Yatsukhnenko)
-
Fix documentation to show lPush and rPush are variadic 6808cd6a (Michel Grunder)
[5.2.2] - 2020-05-05 (GitHub, PECL)
Sponsors 💖
Changed
-
Inexpensive liveness check, and making ECHO optional 56898f81 (Pavlo Yatsukhnenko)
-
Move
AUTHtoredis_sock_server_open80f2529b (Pavlo Yatsukhnenko)
[5.2.1] - 2020-03-19 (GitHub, PECL)
Sponsors 💖
Fixed
-
Fix arginfo for Redis::zadd a8e2b021 (Pavlo Yatsukhnenko)
-
Fix segfault on closing persistent stream b7f9df75 (Pavlo Yatsukhnenko)
[5.2.0] - 2020-03-02 (GitHub, PECL)
There were no changes between 5.2.0RC2 and 5.2.0
[5.2.0RC2] - 2020-02-21 (GitHub, PECL)
Sponsors 💖
Fixed
-
Include RedisSentinelTest.php in package.xml! eddbfc8f (Michel Grunder)
-
Fix -Wmaybe-uninitialized warning 740b8c87 (Remi Collet)
-
Fix improper destructor when zipping values and scores 371ae7ae
-
Use php_rand instead of php_mt_rand for liveness challenge string 9ef2ed89 (Michael Grunder)
[5.2.0RC1] - 2020-02-15 (GitHub, PECL)
Sponsors 💖
Added
-
Added challenge/response mechanism to ensure persistent connections are not in a bad state a5f95925, 25cdaee6, 7b6072e0, 99ebd0cc, 3243f426 (Pavlo Yatsukhnenko, Michael Grunder)
-
Experimental support for RedisSentinel 90cb69f3, c94e28f1, 46da22b0, 5a609fa4, 383779ed (Pavlo Yatsukhnenko)
Fixed
-
Fixed ASK redirection logic ba73fbee (Michael Grunder)
-
Create specific 'test skipped' exception c3d83d44 (Michael Grunder)
-
Fixed memory leaks in RedisCluster a107c9fc (Michael Grunder)
-
Fixes for session lifetime values that underflow or overflow 7a79ad9c, 3c48a332 (Michael Grunder)
-
Enables slot caching for Redis Cluster 23b1a9d8 (Michael Booth)
-
Housekeeping (spelling, doc changes, etc) 23f9de30, d07a8df6, 2d39b48d, 0ef488fc, 2c35e435, f52bd8a8, 2ddc5f21, 1ff7dfb7, db446138 (Pavlo Yatsukhnenko, Tyson Andre, Michael Grunder, Paul DelRe, Tyson Andre)
Changed
- Support TYPE argument for SCAN 8eb39a26 b1724b84 53fb36c9 544e641b (Pavlo Yatsukhnenko)
[5.1.1] - 2019-11-11 (GitHub, PECL)
Fixed
- Fix fail to connect to redis through unix socket 2bae8010, 9f4ededa (Pavlo Yatsukhnenko, Michael Grunder)
[5.1.0] - 2019-10-31 (GitHub, PECL)
Added
- Add optional support for Zstd compression, using
--enable-redis-zstd. This requires libzstd version >= 1.3.0 2abc61da (Remi Collet) - Add documentation for zpopmin and zpopmax 99ec24b3, 4ab1f940 (alexander-schranz)
- Allow to specify scheme for session handler. 53a8bcc7 (Pavlo Yatsukhnenko)
Changed
- Refactor redis_session 91a8e734, 978c3074 (Pavlo Yatsukhnenko)
- Fix overallocation in RedisCluster directed node commands cf93649 (Michael Grunder)
- Also attach slaves when caching cluster slots 0d6d3fdd, b114fc26 (Michael Grunder)
- Use zend_register_persistent_resource_ex for connection pooling fdada7ae, 7c6c43a6 (Pavlo Yatsukhnenko)
Fixed
- Fix regression for multihost_distribute_call added in 112c77e3 fbe0f804 (Pavlo Yatsukhnenko)
- Revert "fix regression for conntecting to ports > 32767" added in 1f41da64 and add another fix 17b139d8, 7ef17ce1 (Pavlo Yatsukhnenko)
- Fix regression for conntecting to unix sockets with relative path added in 1f41da64 17b139d8, 7ef17ce1 (Pavlo Yatsukhnenko)
- Fix unix-socket detection logic broken in 418428fa a080b73f (Pavlo Yatsukhnenko)
- Fix memory leak and bug with getLastError for redis_mbulk_reply_assoc and redis_mbulk_reply_zipped. 7f42d628, 3a622a07 (Pavlo Yatsukhnenko), (Michael Grunder)
- Fix bug with password contain "#" for redis_session 2bb08680 (Pavlo Yatsukhnenko)
- Missing null byte in PHP_MINFO_FUNCTION 8bc2240c (Remi Collet)
Removed
- Dead code generic_unsubscribe_cmd 8ee4abbc (Pavlo Yatsukhnenko)
[5.0.2] - 2019-07-29 (GitHub, PECL)
Fixed
- Fix regression for conntecting to ports > 32767 1f41da64, (Owen Smith)
- RedisCluster segfaults after second connection with cache_slots enabled f52cd237, cb5d6b94 (Pavlo Yatsukhnenko, Michael Grunder)
Changed
- Cleanup TSRMLS_* usage 94380227 (Remi Collet)
- Replace ulong with zend_ulong b4eb158a (Remi Collet)
- Replace uint with uint32_t d6fc5c73 (Remi Collet)
[5.0.1] - 2019-07-12 (GitHub, PECL)
Fixed
- RedisCluster segfaults after second connection with cache_slots enabled 327cf0bd (Pavlo Yatsukhnenko)
[5.0.0] - 2019-07-02 (GitHub, PECL)
This release contains important improvements and breaking changes. The most interesting are: drop PHP5 support, RedisCluster slots caching, JSON and msgpack serializers, soft deprecation of non-Redis commands.
Breaking Changes
- Nullable xReadGroup COUNT and BLOCK arguments
- RedisArray exception now includes host information
- zRange now conforms to zRangeByScore to get scores
Added
- Adds OPT_REPLY_LITERAL for rawCommand and EVAL 5cb30fb2 (Michael Grunder)
- JSON serializer 98bd2886, 96c57139, 235a27 (Pavlo Yatsukhnenko, Michael Grunder)
- msgpack serializer d5b8f833, 545250f3, 52bae8ab (@bgort, Pavlo Yatsukhnenko, Michael Grunder)
- Add support for STREAM to the type command d7450b2f, 068ce978, 8a45d18c (Michael Grunder, Pavlo Yatsukhnenko)
- Add Cluster slots caching 9f0d7bc0, ea081e05 (Michael Grunder)
Changed
- Add server address to exception message. This changes the exception message from
read error on connectiontoread error on connection to <host>:<port>orread error on connection to </path/to/socket>so code matching the exception string might break. e8fb49be, 34d6403d (Pavlo Yatsukhnenko) - Allow to specify server address as
schema://host418428fa (Pavlo Yatsukhnenko). - Update Fedora installation instructions 90aa067c (@remicollet)
- Enable connection pooling by default 8206b147 (Pavlo Yatsukhnenko)
- Allow PING to take an optional argument. PING now returns
trueinstead of "+PONG" 6e494170 (Michael Grunder) - Allow ZRANGE to be called either with
trueor['withscores' => true]19f3efcf (Michael Grunder) - Documentation improvements (@alexander-schranz, @cookieguru, Pavlo Yatsukhnenko, Michael Grunder)
Deprecated
- Soft deprecate methods that aren't actually Redis commands a81b4f2d, 95c8aab9, 235a27 (@michael-grunder, @yatsukhnenko)
- Remove HAVE_SPL define [55c5586c] (@petk)
Removed
Fixed
- Reworked PHP msgpack >= 2.0.3 version requirement. 6973478..a537df8 (@michael-grunder).
- Enable pooling for cluster slave nodes 17600dd1 (Michael Grunder)
- xInfo response format 4852a510, ac9dca0a (Pavlo Yatsukhnenko)
- Make the XREADGROUP optional COUNT and BLOCK arguments nullable 0c17bd27 (Michael Grunder)
- Allow persistent_id to be passed as NULL with strict_types enabled 60223762 (Michael Grunder)
- Fix TypeError when using built-in constants in
setOption4c7643ee (@JoyceBabu) - Handle references in MGET 60d8b679 (Michael Grunder)
[4.3.0] - 2019-03-13 (GitHub, PECL)
This is probably the last release with PHP 5 support!!!
Added
- RedisArray auth b5549cff, 339cfa2b, 6b411aa8 (Pavlo Yatsukhnenko)
- Add ZPOPMAX and ZPOPMIN support 46f03561, f89e941a, 2ec7d91a (@mbezhanov, Michael Grunder)
- Implement GEORADIUS_RO and GEORADIUSBYMEMBER_RO 22d81a94 (Michael Grunder)
- RedisCluster auth c5994f2a (Pavlo Yatsukhnenko)
- Different key hashing algorithms from hash extension 850027ff (Pavlo Yatsukhnenko)
Changed
-
Proper persistent connections pooling implementation a3703820, c76e00fb, 0433dc03, c75b3b93 (Pavlo Yatsukhnenko)
-
Use zend_string for storing key hashing algorithm 8cd165df, 64e6a57f, Pavlo Yatsukhnenko
-
Add callback parameter to subscribe/psubscribe arginfo 0653ff31, (Pavlo Yatsukhnenko)
-
Xgroup updates 15995c06 (Michael Grunder)
-
Use zend_string for pipeline_cmd e98f5116 (Pavlo Yatsukhnenko)
-
Implement consistent hashing algorithm for RedisArray bb32e6f3, 71922bf1 (Pavlo Yatsukhnenko)
-
Use zend_string for storing RedisArray hosts 602740d3, 3e7e1c83 (Pavlo Yatsukhnenko)
-
Refactor redis_sock_read_bulk_reply bc4dbc4b (Pavlo Yatsukhnenko)
Fixed
- Don't check the number affected keys in PS_UPDATE_TIMESTAMP_FUNC b00060ce (Pavlo Yatsukhnenko)
- Cancel pipeline mode without executing commands 789256d7 (Pavlo Yatsukhnenko)
- Breaking the lock acquire loop in case of network problems 61889cd7 (@SkydiveMarius)
- Update lzf_compress to be compatible with PECL lzf extension b27fd430 (@jrchamp)
- Fix RedisCluster keys memory leak 3b56b7db (Michael Grunder)
- Directly use return_value in RedisCluster::keys method ad10a49e (Pavlo Yatsukhnenko)
- Fix segfault in Redis Cluster with inconsistent configuration 72749916, 6e455e2e (Pavlo Yatsukhnenko)
- Masters info leakfix 91bd7426 (Michael Grunder)
- Remove unused parameter lazy_connect from redis_sock_create c0793e8b (Pavlo Yatsukhnenko)
- Remove useless
ZEND_ACC_[C|D]TOR. bc9b5597 (@twosee) - Documentation improvements (yulonghu, @alexander-schranz, @hmc, Pavlo Yatsukhnenko, Michael Grunder)
[4.2.0] - 2018-11-08 (GitHub, PECL)
The main feature of this release is new Streams API implemented by Michael Grunder.
Added
- Streams API 2c9e0572, 0b97ec37 (Michael Grunder)
- Display ini entries in output of phpinfo 908ac4b3 (Pavlo Yatsukhnenko)
- Persistent connections can be closed via close method + change reconnection logic 1d997873 (Pavlo Yatsukhnenko)
Changed
- Optimize close method 2a1ef961 (yulonghu)
- Use a ZSET instead of SET for EVAL tests 2e412373 (Michael Grunder)
- Modify session testing logic bfd27471 (Michael Grunder)
- Documentation improvements (@michael-grunder, @elcheco, @lucascourot, @nolimitdev, Michael Grunder)
Fixed
- Prevent potential infinite loop for sessions 4e2de158 (Pavlo Yatsukhnenko)
- Fix coverty warnings 6f7ddd27 (Pavlo Yatsukhnenko)
- Fix session memory leaks 071a1d54, 92f14b14 (Pavlo Yatsukhnenko, Michael Grunder)
- Fix XCLAIM on 32-bit installs 18dc2aac (Michael Grunder)
- Build warning fixes b5093910, 51027044, 8b0f28cd (Pavlo Yatsukhnenko, Remi Collet, twosee)
- Fix incorrect arginfo for
Redis::sRemandRedis::multi25b043ce (Pavlo Yatsukhnenko) - Treat a -1 response from cluster_check_response as a timeout. 27df9220, 07ef7f4e, d1172426 (Michael Grunder).
- Missing space between command and args 0af2a7fe (@remicollet)
- Reset the socket after a timeout to make sure no wrong data is received cd6ebc6d (@marcdejonge)
- Allow '-' and '+' arguments and add tests for zLexCount and zRemRangeByLex d4a08697 (Michael Grunder)
- Fix printf format warnings dcde9331 (Pavlo Yatsukhnenko)
- Session module is required 58bd8cc8 (@remicollet)
- Set default values for ini entries e206ce9c (Pavlo Yatsukhnenko)
[4.0.0] - 2018-03-07 (GitHub, PECL)
WARNING: THIS RELEASE CONTAINS BREAKING API CHANGES!
Added
- Add proper ARGINFO for all methods. (Pavlo Yatsukhnenko, Michael Grunder)
- Let EXISTS take multiple keys cccc39 (Michael Grunder)
- Implement SWAPDB and UNLINK commands 84f1f28b, 9e65c429 (Michael Grunder)
- Add LZF compression (experimental) e2c51251, 8cb2d5bd, 8657557 (Pavlo Yatsukhnenko)
- Allow mixing MULTI and PIPELINE modes (experimental) 5874b0 (Pavlo Yatsukhnenko)
Changed
- Use zend_string as returning value for ra_extract_key and ra_call_extractor 9cd05911 (Pavlo Yatsukhnenko)
- Return real connection error as exception 5b9c0c60 (Pavlo Yatsukhnenko, Michael Grunder)
- Use zend_string for storing auth and prefix members 4b8336f7 (Pavlo Yatsukhnenko)
- Add tcp_keepalive option to redis sock 68c58513, 5101172a, 010336d5, 51e48729 (@git-hulk, Michael Grunder)
- More robust GEORADIUS COUNT validation f7edee5d (Michael Grunder)
- Allow to use empty string as persistent_id ec4fd1bd (Pavlo Yatsukhnenko)
- Documentation improvements (Michael Grunder, @TomA-R)
Fixed
- Disallow using empty string as session name. 485db46f (Pavlo Yatsukhnenko)
- The element of z_seeds may be a reference on php7 367bc6aa, 1e63717a (@janic716)
- Avoid connection in helper methods 91e9cfe1 (Pavlo Yatsukhnenko)
- Don't use convert_to_string in redis_hmget_cmd 99335d6 (Pavlo Yatsukhnenko)
- PHP >=7.3.0 uses zend_string to store
php_urlelements b566fb44 (@fmk)
[3.1.5] - 2017-09-27 (GitHub, PECL)
This is interim release which contains only bug fixes.
Fixed
- Fix segfault when extending Redis class in PHP 5 d23eff (Pavlo Yatsukhnenko)
- Fix RedisCluster constructor with PHP 7 strict scalar type 5c21d7 (Pavlo Yatsukhnenko)
- Allow to use empty string as persistent_id 344de5 (Pavlo Yatsukhnenko)
- Fix cluster_init_seeds. db1347 (@adlagares)
- Fix z_seeds may be a reference 42581a (@janic716)
- PHP >=7.3 uses zend_string for php_url elements b566fb (@fmk)
[3.1.4] - 2017-09-27 (GitHub, PECL)
The primary new feature phpredis 3.1.4 is the ability to send MULTI .. EXEC blocks in pipeline mode. There are also many bugfixes and minor improvements to the api, listed below.
Added
- Allow mixing MULTI and PIPELINE modes (experimental)! 5874b0 (Pavlo Yatsukhnenko)
- Added integration for coverty static analysis and fixed several warnings faac8b0, eff7398, 4766c25, 0438ab4, 1e0b065, 733732a, 26eeda5, 735025, 42f1c9, af71d4 (Pavlo Yatsukhnenko).
- Added arginfo introspection structures 81a0303, d5609fc, e5660be, 3c60e1f, 50dcb15, 6c2c6fa, 212e323, e23be2c, 682593d, f8de702, 4ef3acd, f116be9, 5c111dd, 9caa029, 0d69650, 6859828, 024e593, 3643ab6, f576fab, 122d41f, a09d0e6 (Tyson Andre, Pavlo Yatsukhnenko).
- Added a github issue template 61aba9 (Pavlo Yatsukhnenko)
Changed
- Refactor redis_send_discard ea15ce (Pavlo Yatsukhnenko)
- Improve redis array rehash 577a91 (Pavlo Yatsukhnenko)
- Change redis array pure_cmds from zval to hashtable a56ed7 (Pavlo Yatsukhnenko)
- Use zend_string rather than char for various context fields (err, prefix, etc) 2bf7b2 (Pavlo Yatsukhnenko)
- Updated runtime exception handling 8dcaa4, 7c1407 (Pavlo Yatsukhnenko)
Fixed
- Fixed link to redis cluster documentation 3b0b06 (Pavlo Yatsukhnenko)
- Removed duplicate HGET in redis array hash table, formatting d0b9c5 (Pavlo Yatsukhnenko).
- Treat NULL bulk as success for session read 659450 (Pavlo Yatsukhnenko)
- Fix valgrind warnings 471ce07, 1ab89e1, b624a8b (Pavlo Yatsukhnenko)
- Fix php5/php7 compatibility layer 1ab89e, 4e3225 (Pavlo Yatsukhnenko)
- Fix typo in README.markdown e47e44 (Toby Schrapel)
- Initialize gc member of zend_string 37f569 (Pavlo Yatsukhnenko).
- Don't try to set TCP_NODELAY on a unix socket and don't warn on multiple calls to pipeline d11798, 77aeba (Michael Grunder)
- Various other library fixes 142b51, 4452f6, e672f4, 658ee3, c9df77, 4a0a46 (Pavlo Yatsukhnenko)
Removed
- Remove unused PHP_RINIT and PHP_RSHUTDOWN functions c760bf (Pavlo Yatsukhnenko)
[3.1.3] - 2017-07-15 (GitHub, PECL)
This release contains two big improvements:
- Adding a new printf like command construction function with additionally format specifiers specific to phpredis.
- Implementation of custom objects for Redis and RedisArray which eliminates double hash lookup.
Also many small improvements and bug fixes were made.
Added
- Add hStrLen command c52077, fb88e1 (Pavlo Yatsukhnenko)
- A printf like method to construct a Redis RESP command a4a0ed, d75081, bdd287, 0eaeae, b3d00d (Michael Grunder)
- Use custom objects instead of zend_list for storing Redis/RedisArray a765f8, 8fa85a (Pavlo Yatsukhnenko)
- Add configureoption tag to package.xml 750963 (Pavlo Yatsukhnenko)
Changed
- Add optional COUNT argument to sPop d2e203 (Michael Grunder)
- Allow sInterStore to take one arg 26aec4, 4cd06b (Michael Grunder)
- Allow MIGRATE to accept multiple keys 9aa3db (Michael Grunder)
- Use crc32 table from PHP distro f81694 (Pavlo Yatsukhnenko)
- Throw exception for all non recoverable errors e37239 (Pavlo Yatsukhnenko)
- Increase read buffers size 520e06 (Pavlo Yatsukhnenko)
- Better documentation f0c25a, c5991f, 9ec9ae (Michael Grunder)
- Better TravisCI integration e37c08 (Pavlo Yatsukhnenko)
Fixed
- Make sure redisCluster members are all initialized on (re)creation 162d88
- (Michael Grunder).
- Fix Null Bulk String response parsing in cluster library 058753
- (Alberto Fernández)
- Allow using numeric string in zInter command ba0070 (Pavlo Yatsukhnenko)
- Use ZVAL_DEREF macros for dereference input variables ad4596
- (Pavlo Yatsukhnenko)
- Fix read_timeout 18149e, b56dc4 (Pavlo Yatsukhnenko)
- Fix zval_get_string impl for PHP5 4e56ba (Pavlo Yatsukhnenko)
- Fix Redis/RedisArray segfaults be5c1f, 635c3a, 1f8dde, 43e1e0
- (Pavlo Yatsukhnenko)
- Fix memory leak and potential segfault aa6ff77a, 88efaa (Michael Grunder)
- Assume "NULL bulk" reply as success (empty session data) 4a81e1 (Pavlo Yatsukhnenko)
- Refactoring (Pavlo Yatsukhnenko, Michael Grunder)
[3.1.2] - 2017-03-16 (GitHub, PECL)
Changes
- Re allow single array for sInterStore 6ef0c2, d01966 (Michael Grunder)
- Better TravisCI integration 4fd2f6 (Pavlo Yatsukhnenko)
Fixed
- RedisArray segfault fix 564ce3 (Pavlo Yatsukhnenko)
- Small memory leak fix 645888b (Mike Grunder)
- Segfault fix when recreating RedisCluster objects abf7d4 (Michael Grunder)
- Fix for RedisCluster bulk response parsing 4121c4 (Alberto Fernández)
[3.1.1] - 2017-02-01 (GitHub, PECL)
This release contains mostly fixes for issues introduced when merging the php 5 and 7 codebase into a single branch.
- Additional test updates for 32 bit systems (@remicollet)
- ARM rounding issue in tests (@remicollet)
- Use new zend_list_close instead of zend_list_delete when reconnecting.
- Refactoring of redis_boolean_response_impl and redis_sock_write (@yatsukhnenko)
- Fixed a segfault in igbinary serialization (@yatsukhnenko)
- Restore 2.2.8/3.0.0 functionality to distinguish between an error and simply empty session data. (@remicollet)
- Fix double to string conversion function (@yatsukhnenko)
- Use PHP_FE_END definition when available (@remicollet)
- Fixed various 'static function declared but not used' warnings
- Fixes to various calls which were typecasting pointers to the
- wrong size. (@remicollet)
- Added php session unit test (@yatsukhnenko)
- Added explicit module dependency for igbinary (@remicollet)
- Added phpinfo serialization information (@remicollet)
[3.1.0] - 2016-12-14 (GitHub, PECL)
In this version of phpredis codebase was unified to work with all versions of php \o/ Also many bug fixes and some improvements has been made.
Added
- Support the client to Redis Cluster just having one master (andyli) 892e5646
- Allow both long and strings that are longs for zrangebyscore offset/limit (Michael Grunder) bdcdd2aa
- Process NX|XX, CH and INCR options in zAdd command 71c9f7c8 (Pavlo Yatsukhnenko)
Fixed
- Fix incrby/decrby for large integers (Michael Grunder) 3a12758a
- Use static declarations for spl_ce_RuntimeException decl a9857d69 (Jeremy Mikola)
- Fixed method call problem causes session handler to display two times 24f86c49 (ZiHang Gao).
- PSETEX method returns '+OK' on success, not true afcd8445 (sitri@ndxbn)
- Fix integer overflow for long (>32bit) increments in hIncrBy 58e1d799 (@iyesin)
- Move zend_object handler to the end (Michael Grunder) 34107966
- Using setOption on redis array causes immediate connection f1a85b38 (Pavlo Yatsukhnenko)
[3.0.0] - 2016-06-10 (GitHub, PECL)
This version of phpredis supports cluster and is intended for php versions 7.0.0 and higher. To compile cluster-enabled phpredis for older versions of php, please use the 2.2.8 pecl package.
A huge thanks goes out to Sean DuBois for doing all the work required to get phpredis working in php 7.0!
Added
- PHP 7 Support 3159bd2, 567dc2f, daa4d9f, f2711e3, 9cb9d07, d51c89, 9ff8f49, 33bb629, cbdf65a, f30b7fd, c687a51, 6b3e773, 2bf8241, 71bd3d, 9221ca4, 4e00df6, e2407ca, 97fcfe6, 77e6200 Sean DuBois
- Redis Cluster support
- IPv6 support
Changed
- Allow SINTERSTORE to take a single array argument again
- Exception handling improvement Jan-E 314a2c3c
- Allow '-' and '+' in ZRANGEBYLEX Patrick Pokatilo 8bfa2188
Fixed
- config.w32 fix Jan-E 495d308, c9e0b682
- Unit test fix for max int value Jan-E 659ea2aa
- unsigned long -> zend_ulong fix Jan-E 4d66e3d4
- Visual Stuio 14 fixes Jan-E ea98401c
- Segfault fix when looking up our socket ephemeralsnow 0126481a
- Documentation fixes Ares 54b9a0ec
- php7 related memory leak fix Stuart Carnie b75bf3b4
- Potential segfault fix in cluster session Sergei Lomakov 661fb5b1
- php7 related serialization leak fix (Adam Harvey) c40fc1d8
[2.2.8] - 2016-06-02 (GitHub, PECL)
The main improvement in this version of phpredis is support for Redis Cluster. This version of phpredis is intended for versions of php older than 7.
Added
- Added randomization to our seed nodes to balance which instance is used to map the keyspace 32eb1c5f (Vitaliy Stepanyuk)
- Added support for IPv6 addresses
Fixed
- PHP liveness checking workaround (Shafreeck Sea) c18d58b9
- Various documentation and code formatting and style fixes (ares333, sanpili, Bryan Nelson, linfangrong, Romero Malaquias, Viktor Szépe)
- Fix scan reply processing to use long instead of int to avoid overflow mixiaojiong).
- Fix potential segfault in Redis Cluster session storage cc15aae (Sergei Lomakov).
- Fixed memory leak in discard function 17b1f427
- Sanity check for igbinary unserialization 3266b222, 528297a (Maurus Cuelenaere).
- Fix segfault occurring from unclosed socket connection for Redis Cluster 04196aee (CatKang)
- Case insensitive zRangeByScore options
- Fixed dreaded size_t vs long long compiler warning
[2.2.7] - 2015-03-03 (GitHub, PECL)
Added
- Implemented PFADD, PFMERGE, and PFCOUNT command handling
- Implemented ZRANGEBYLEX command (holding off on ZREVRANGEBYLEX as that won't be out until 3.0)
- Implemented getMode() so clients can detect whether we're in ATOMIC/MULTI/PIPELINE mode.
- Implemented rawCommand() so clients can send arbitrary things to the redis server
- Implemented DEBUG OBJECT (@michael-grunder, @isage)
- Added/abide by connect timeout for RedisArray
Fixed
- Select to the last selected DB when phpredis reconnects
- Fix a possible invalid free in _serialize()
- Added SAVE and BGSAVE to "distributable" commands for RedisArray
- Fixed invalid "argc" calculation in HLL commands (@welting)
- Allow clients to break out of the subscribe loop and return context.
- Fixes a memory leak in SCAN when OPT_SCAN_RETRY id.
- Fix possible segfault when igbinary is enabled (@remicollet).
- Add a couple of cases where we throw on an error (LOADING/NOAUTH/MASTERDOWN)
- Fix several issues with serialization NARY
- Fix missing TSRMLS_CC and a TSRMLS_DC/TSRMLS_CC typo (@itcom)
[2.2.5] - 2014-03-15 (GitHub, PECL)
Added
- Support for the BITPOS command
- Connection timeout option for RedisArray (@MiketoString)
- A _serialize method, to complement our existing _unserialize method
- Support for the PUBSUB command
- Support for SCAN, SSCAN, HSCAN, and ZSCAN
- Support for the WAIT command
Fixed
- Handle the COPY and REPLACE arguments for the MIGRATE command
- Fix syntax error in documentation for the SET command (@mithunsatheesh)
- Fix Homebrew documentation instructions (@mathias)
[2.2.4] - 2013-09-01 (GitHub, PECL)
Added
- Randomized reconnect delay for RedisArray @mobli
- Lazy connections to RedisArray servers @mobli
- Allow LONG and STRING keys in MGET/MSET
- Extended SET options for Redis >= 2.6.12
- Persistent connections and UNIX SOCKET support for RedisArray
- Allow aggregates for ZUNION/ZINTER without weights @mheijkoop
- Support for SLOWLOG command
Changed
- Reworked MGET algorithm to run in linear time regardless of key count.
- Reworked ZINTERSTORE/ZUNIONSTORE algorithm to run in linear time
Fixed
- C99 Compliance (or rather lack thereof) fix @mobli
- Added ZEND_ACC_CTOR and ZEND_ACC_DTOR @euskadi31
- Stop throwing and clearing an exception on connect failure @matmoi
- Fix a false positive unit test failure having to do with TTL returns