Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
Adds `Redis::SCAN_PREFIX` and `Redis::SCAN_NOPREFIX` as options to SCAN.
See #548
|
|
Use the portable `ZEND_LONG_FORMAT` family instead of C format specifiers
|
|
|
|
|
|
package.xml has a minimum version of 7.0
PHP 8.0 will probably be out in around a year.
|
|
Fix proto comments for host_port in RedisCluster
|
|
|
|
These methods accept a single argument, not two arguments.
(cluster_cmd_get_slot accepts one argument)
|
|
|
|
|
|
|
|
|
|
Addresses #1563
|
|
Allows ZRANGE to be called either with `true` or `['withscores' => true]` so it's consistent with `ZRANGEBYSCORE` but also backward compatible.
Fixes #1555
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
This commit updates ZPOPMIN/ZPOPMAX to return the same format that
zRange WITHSCORES and zRangeByScore WITHSCORES does.
In addition the blocking variants BZPOPMIN and BZPOPMAX are implemented.
|
|
|
|
|
|
|
|
This addresses #1502, #1487
|
|
|
|
|
|
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
|
|
|
|
Remove useless ZEND_ACC_[C|D]TOR.
|
|
Free redis response since adding it to our array duplicates the data
anyway.
Addresses #1460
|
|
|
|
Fix for memory leaks in `RedisCluster->_masters()` and `RedisCluster->info()`
|
|
Right before Redis 5.0 was released, the api was changed to send
message ids as BULK instead of STATUS replies.
|
|
#ref: https://github.com/php/php-src/commit/8939c4d96b8382abe84f35e69f4f6ebd6f0f749d#r30609734
|
|
Streams API
|
|
Persistant connections can be closed via close method.
Connection marked as failed only after reconnection attempts.
|
|
Use `cluster_free` in `free_cluster_context` to free cluster object.
Call `cluster_disconnect` before destroying cluster object.
|
|
Handle async parameter for RedisCluster::flushDb and RedisCluster::flushAll
|
|
|
|
This commit implements UNLINK for Redis, RedisCluster, and RedisArray.
To a client library UNLINK behaves identically to DEL so we can use the
same handlers for both.
|
|
|
|
|
|
This commit is adding support of data compression.
LZF was choosen because it small and fast and Redis server uses it.
Since [pecl package](https://pecl.php.net/package/lzf) doesn't provide
lzf.h file after installing, LZF library was added as submodule.
Another algorythms may be easely added by analogy with serializers.
TODO: unit-tests for different data types.
|
|
|