The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:
1. Construct the call in order to get all of the keys from the source
2. Make a pass through call to the source node to get a response
3. Use the response to make a pass through call to the destination node
The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.
Conflicts:
redis_array_impl.c
The pattern to move a key for various types (strings, sets, zsets,
hashes, etc) used a simple pattern:
1. Construct the call in order to get all of the keys from the source
2. Make a pass through call to the source node to get a response
3. Use the response to make a pass through call to the destination node
The issue, however, was that we were using the same return value variable
for both source and destination nodes, so we would leak the response from
the source node.
RedisArray will segfault if you pass something other than strings
into your array of hosts. This is invalid input (needs strings here)
but it shouldn't crash php.
This brings the W32 compilation fixes done by @char101 up to date and
allows building of php_redis.dll with VC11 on Win32 (allows for a php5.5
version).
I accidentally pulled this when getting some of the pull requests
integrated (git flow style) for this release. I like the idea
for sure, but I think it needs more detailed documentation and
further testing.
At the very least, I need to understand it :)
Given that PHP 5.2.X and PHP 5.3.X use a different signature
for zend_is_callable_ex, and we're not using the error return
(PHP 5.3.X) anyway, just pass in NULL.
Addresses issue #318
Added an option to let each RedisArray connection connect lazily to
their respective server. This is useful then working with a redis
cluster composed of many shards which are not necessarily in use all at
once.
New select DB command to RedisArray - Added retry delay on reconnect
Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
Also, fixed a compiler warning:
redis_array_impl.c:1115:15: warning: incompatible pointer types
assigning to 'zval **' (aka 'struct _zval_struct **') from 'zval
**(*)[2]' [-Wincompatible-pointer-types]
Conflicts:
common.h
Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
Also, fixed a compiler warning:
redis_array_impl.c:1115:15: warning: incompatible pointer types
assigning to 'zval **' (aka 'struct _zval_struct **') from 'zval
**(*)[2]' [-Wincompatible-pointer-types]
Added the possibility to delay each reconnection attempt, including a
random factor to prevent several or many concurrent connections from
trying to reconnect at the same time.
Added the select command to RedisArray to select a DB on every
connections in one instruction.
Improves the performance of rehashing either with auto-rehash or with
the _rehash method by pipelining the call to TYPE and TTL and using
SETEX instead of SET and EXPIRE for string keys.