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.
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- 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)
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- Fix memory leak and segfault in Redis::exec 362e1141 (Pavlo Yatsukhnenko), (Markus Podar)
- Fix unknown expiration modifier 264c0c7e, 95bd184b (Pavlo Yatsukhnenko)
- Add missing option to exampleA 3674d663 (Till Krüss)
- Update sentinel documentation 849bedb6, 1ad95b63 (Joost OrangeJuiced)
- 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
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- 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)
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- 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)
- 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
command
command 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)
- 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)
- Remove unused macros 831d6118 (Pavlo Yatsukhnenko)
- 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
- 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
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- 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)
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- Fix a segfault in RedisArray::del d2f2a7d9 (Pavlo Yatsukhnenko)
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- Fixed typo in cluster_scan_resp 44affad2
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- Stackhero
- Florian Levis
- Luis Zárate
- 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)
- 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)
- 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)
- Audiomack
- Open LMS
- BlueHost
- Object Cache Pro for WordPress
- Avtandil Kikabidze
- Zaher Ghaibeh
- BatchLabs
- 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)
- Audiomack
- BlueHost
- Redis Cache Pro for WordPress
- Avtandil Kikabidze
- Oleg Babushkin
- Zaher Ghaibeh
- BatchLabs
- 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)
- 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)
- 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)
- Add
Redis::OPT_NULL_MULTIBULK_AS_NULL
setting to treat NULL multi bulk replies asNULL
instead 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)
- 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)
- Add openSUSE installation instructions 13a168f4 (Pavlo Yatsukhnenko)
- Remove EOL Fedora installation instructions b4779e6a (Remi Collet)
There were no changes between 5.3.0RC2 and 5.3.0
-
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)
- Run LZ4 tests in Travis 3ba3f06d (Michael Grunder)
-
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)
-
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
long
5bf88124 (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)
-
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_FORMAT
family 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)
-
Inexpensive liveness check, and making ECHO optional 56898f81 (Pavlo Yatsukhnenko)
-
Move
AUTH
toredis_sock_server_open
80f2529b (Pavlo Yatsukhnenko)
-
Fix arginfo for Redis::zadd a8e2b021 (Pavlo Yatsukhnenko)
-
Fix segfault on closing persistent stream b7f9df75 (Pavlo Yatsukhnenko)
There were no changes between 5.2.0RC2 and 5.2.0
-
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)
-
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 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)
- Support TYPE argument for SCAN 8eb39a26 b1724b84 53fb36c9 544e641b (Pavlo Yatsukhnenko)
- Fix fail to connect to redis through unix socket 2bae8010, 9f4ededa (Pavlo Yatsukhnenko, Michael Grunder)
- 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)
- 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)
- 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)
- Dead code generic_unsubscribe_cmd 8ee4abbc (Pavlo Yatsukhnenko)
- 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)
- Cleanup TSRMLS_* usage 94380227 (Remi Collet)
- Replace ulong with zend_ulong b4eb158a (Remi Collet)
- Replace uint with uint32_t d6fc5c73 (Remi Collet)
- RedisCluster segfaults after second connection with cache_slots enabled 327cf0bd (Pavlo Yatsukhnenko)
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.
- Nullable xReadGroup COUNT and BLOCK arguments
- RedisArray exception now includes host information
- zRange now conforms to zRangeByScore to get scores
- 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)
- Add server address to exception message. This changes the exception message from
read error on connection
toread 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://host
418428fa (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
true
instead of "+PONG" 6e494170 (Michael Grunder) - Allow ZRANGE to be called either with
true
or['withscores' => true]
19f3efcf (Michael Grunder) - Documentation improvements (@alexander-schranz, @cookieguru, Pavlo Yatsukhnenko, Michael Grunder)
- Soft deprecate methods that aren't actually Redis commands a81b4f2d, 95c8aab9, 235a27 (@michael-grunder, @yatsukhnenko)
- Remove HAVE_SPL define [55c5586c] (@petk)
- 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
setOption
4c7643ee (@JoyceBabu) - Handle references in MGET 60d8b679 (Michael Grunder)
This is probably the last release with PHP 5 support!!!
- 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)
-
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)
- 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)
The main feature of this release is new Streams API implemented by Michael Grunder.
- 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)
- 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)
- 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::sRem
andRedis::multi
25b043ce (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)
WARNING: THIS RELEASE CONTAINS BREAKING API CHANGES!
- 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)
- 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)
- 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_url
elements b566fb44 (@fmk)
This is interim release which contains only bug fixes.
- 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)
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.
- 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)
- 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 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)
- Remove unused PHP_RINIT and PHP_RSHUTDOWN functions c760bf (Pavlo Yatsukhnenko)
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.
- 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)
- 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)
- 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)
- Re allow single array for sInterStore 6ef0c2, d01966 (Michael Grunder)
- Better TravisCI integration 4fd2f6 (Pavlo Yatsukhnenko)
- 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)
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)
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.
- 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)
- 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)
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!
- 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
- Allow SINTERSTORE to take a single array argument again
- Exception handling improvement Jan-E 314a2c3c
- Allow '-' and '+' in ZRANGEBYLEX Patrick Pokatilo 8bfa2188
- 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
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 randomization to our seed nodes to balance which instance is used to map the keyspace 32eb1c5f (Vitaliy Stepanyuk)
- Added support for IPv6 addresses
- 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
- 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
- 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)
- 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
- 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)
- 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
- Reworked MGET algorithm to run in linear time regardless of key count.
- Reworked ZINTERSTORE/ZUNIONSTORE algorithm to run in linear time
- 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