Age | Commit message (Collapse) | Author |
|
Add the COUNT argument to LPOP and RPOP
|
|
|
|
* Suppress implicit fallthrough warnings by using an attribute if we
have it and a do { } while(0) if we don't.
* Move duplicated logic for appending a ZSET score to one utility
function.
|
|
|
|
|
|
|
|
Add GET option to SET command
|
|
Without this, performing a HMGET call fails to decompress the data before
returning it to php.
|
|
Fix for #1847 when dealing with NULL multi bulk replies in RedisCluster.
Adds `Redis::OPT_NULL_MULTIBULK_AS_NULL` setting to have PhpRedis
treat NULL multi bulk replies as `NULL` instead of `[]`.
Co-authored-by: Alex Offshore <offshore@aopdg.ru>
|
|
|
|
|
|
Add support for Redis 6 ACLs in the `Redis`, `RedisCluster`, and `RedisArray` classes.
On a related note, it adds a mechanism for users to customize how we generate persistent connection IDs such that they can be grouped in different ways depending on the specific use case required (e.g. it would allow connections to be grouped by username, or by user-defined persistent_id, or both).
|
|
Various improvements and fixes to cluster slot caching.
* Improves slot caching so any unique set of seeds all hash to the same key
* Fix a couple of memory leaks.
* Fixes a segfault when executing a multiple key command such as `MGET` or `MSET` while the cluster is resharding.
|
|
|
|
Use the portable `ZEND_LONG_FORMAT` family instead of C format specifiers
|
|
|
|
|
|
See #1693
|
|
Addresses #1701
|
|
|
|
|
|
|
|
Addresses #1613
|
|
Addresses #1611
|
|
|
|
Addresses #1591
|
|
|
|
* Issue #1591
* Add notes to Changelog
|
|
Connections are stashed via redis_sock_disconnect so if RedisCluster
doesn't explicitly call that for slaves then pooling is never used for
those connections.
Addresses #1568
|
|
|
|
Adds an option to process the actual strings in simple string replies as
opposed to translating them to `true`. This only applies to
`rawCommand` and `eval` because as far as I know know vanilla Redis
command attaches any information besides `OK` to simple string replies.
Addresses #1550
|
|
|
|
|
|
|
|
|
|
PHP 7 removed TSRMLS_CC from zend_throw_exception* routines.
Additionally this commit creates two simple wrapper macros for throwing
Redis or RedisCluster exceptions so we don't duplicate as much code.
Additionally there were a couple of minor compiler warnings printf type
correctness fixed in this commit.
|
|
RedisCluster currently has a high construction overhead because
every request has to issue a CLUSTER SLOTS command to map the
keyspace. The issue is especially evident when a request only
does a few commands.
|
|
This commit removes support for PHP 5 by getting rid of all of our Zend
compatibility layer methods, as well as any call checking against
PHP_MAJOR_VERSION or ZEND_MODULE_API_NO.
Unit tests are all passing for Redis, RedisCluster, and RedisArray but
this should still be considered a work in progress until more testing
can be done.
Addresses issue #1448
|
|
|
|
|
|
|
|
Fix for memory leaks in `RedisCluster->_masters()` and `RedisCluster->info()`
|
|
|
|
|
|
Although a -1 return value from cluster_check_response is likely
a timeout, it is not the only possibility, so handle the loop
timeout and error response in distinct ways.
|
|
When cluster_check_response returns -1 this can be treated as a
timeout.
Note that there is one non-timout condition which can
cause a -1 response, but that is a corrupted MOVE/ASK reply
which can *probably* be treated as a timeout as well,
because it means that something has gone horribly wrong
with the connection.
Addresses #1425
|
|
* Reset the socket after a timeout to make sure no wrong data is received
* Remove the lazy_connect completely
* Missing TSRMLS_CC
* Remove redundant check if the stream exists
* Add the redis_sock_server_open to the CLUSTER_SEND_PAYLOAD macro
|
|
Streams API
|
|
Fix printf format warnings
|
|
Persistant connections can be closed via close method.
Connection marked as failed only after reconnection attempts.
|