Commit Graph

152 Commits

Author SHA1 Message Date
michael-grunder 4a6c01bc1a Send a newline with the QUIT command
Addresses #381
2013-09-07 13:51:33 -07:00
michael-grunder 5c4fe08b69 generic_z_command fixes
Use the lengths for our optional parameters, as NULL will
come through as a non null zval pointer with a zero length

Properly return the length from the redis_cmd_sstr_init function
2013-09-01 09:33:20 -07:00
michael-grunder 6e0f0d786c Rework generic_z_command to build the command in linear time
This commit changes how we build the Redis protocol string for
ZUNIONSTORE and ZINTERSTORE such that we avoid reallocating
memory for the command buffer for each new key or weight
2013-09-01 07:48:08 -07:00
michael-grunder 20a3ef42d8 Merge branch 'feature/mobli_ra_changes' into develop 2013-08-31 14:12:13 -07:00
michael-grunder 8e81c49b55 Performance increase for MGET
This commit changes the way we construct the MGET command
such that we avoid allocating and reallocating the command
string pointer for every new key that is added.

This means that MGET performance scales in a linear way rather
than exponentially.
2013-08-31 11:27:54 -07:00
michael-grunder 8443769dc3 Merge remote-tracking branch 'mobli/develop' into feature/mobli_ra_changes
Conflicts:
	redis_array.c
	redis_array_impl.c
	redis_array_impl.h
2013-08-11 11:29:29 -07:00
michael-grunder e914485313 Merge branch 'hotfix/inspection_methods' into develop
Conflicts:
	php_redis.h
	redis.c
2013-03-27 11:21:02 -07:00
michael-grunder ef792320e7 Introspection methods
This commit adds methods to get information about the state
of our phpredis object, such as what host/port we are connected
to, our timeout, etc...

The following methods have been added:

getHost()
getPort()
getDBNum()
getTimeout()
getReadTimeout()
isConnected()
getPersistentID()
getAuth()

In addition, there is a small memory leak fix when a persistent id
was specifically passed to connect() (it wasn't beeing freed).

Addresses issue #320
2013-03-27 10:21:18 -07:00
michael-grunder b2a57c1f9f Merge branch 'hotfix/serializer_leak' into develop 2013-03-16 11:40:36 -07:00
michael-grunder a4627bb94b Fixes a memory leak, and possible undefined behavior if we have
a serialization failure and just return the raw contents of a key.

Addresses issue #315
2013-03-15 16:34:05 -07:00
Emmanuel Merali 4f2aa60e25 Merge remote-tracking branch 'upstream/develop' into develop 2013-02-25 04:06:13 +02:00
michael-grunder d6c29e4348 Merge branch 'hotfix/fix_return_values' into develop 2013-02-24 17:52:56 -08:00
michael-grunder 703476ce01 Fix each place we're erroring out but return a value as the
methods are int returns

Resolves issues pertaining to #303
2013-02-24 17:51:56 -08:00
michael-grunder 0816289454 Merge branch 'hotfix/add_retval_zipped_wreply' into develop 2013-02-24 16:47:57 -08:00
michael-grunder 9954974778 Return a proper value
redis_sock_read_multibulk_reply_zipped_with_flag should always return
a value.  We merged in a change that handled a certain error condition
that was using RETURN_FALSE (and therefore not returning a value)

Simply changed this to RETVAL_FALSE and return -1;
2013-02-24 16:45:11 -08:00
michael-grunder e457d9813d Don't return a value from a void function 2013-02-24 16:32:40 -08:00
Emmanuel Merali ec74ab98df Merge remote-tracking branch 'upstream/develop' into develop
Conflicts:
	library.c
	library.h
	redis.c
	redis_array.c
	redis_array_impl.c
	redis_array_impl.h
	redis_session.c
2013-02-25 00:54:48 +02:00
Emmanuel Merali acd3245456 Added lazy_connect option to RedisArray
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.
2013-02-25 00:38:47 +02:00
Emmanuel Merali 4ae635fddf Merge remote-tracking branch 'upstream/master'
Conflicts:
	common.h
2013-02-24 23:41:12 +02:00
Emmanuel Merali 6d3c9990a5 Merged changes from @mobli
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
2013-02-22 09:35:22 -08:00
Nicolas Favre-Felix a4784b4de7 Merge branch 'hotfix/issue-229' into develop 2013-02-17 16:32:08 +00:00
Nicolas Favre-Felix 4231d70b66 Merge branch 'master' of https://github.com/rnamiki/phpredis into rnamiki-master 2013-02-17 16:07:39 +00:00
michael-grunder 9a5196ed2e CLIENT Commands
This commit adds support for the CLIENT commands (list, getname,
setname, kill).

You can call them like so:

$redis->client('list');
$redis->client('getname');
$redis->client('setname', $name);
$redis->client('kill', $ip_port);

Solves issue #300
2013-02-16 17:57:32 -08:00
michael-grunder 55dd05356d Merge remote-tracking branch 'kotas/opt-read-timeout'
Conflicts:
	library.c
2013-02-11 12:42:49 -08:00
Emmanuel Merali d4c7f64131 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]
2013-01-29 11:47:36 +02:00
Emmanuel Merali 9ba000c54c Revert "Retry delay - selectDB on array"
This reverts commit 3fb643211e.
2013-01-29 11:40:06 +02:00
Emmanuel Merali e0ee405fe9 Revert "New select DB command to RedisArray - Added retry delay on reconnect"
This reverts commit 6091727ba3.
2013-01-29 11:39:13 +02:00
Emmanuel Merali 6091727ba3 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]
2013-01-23 01:57:51 +02:00
Emmanuel Merali 3fb643211e Retry delay - selectDB on array
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.
2013-01-21 18:10:16 +02:00
michael-grunder e1a5145ad2 Changed the way we build the HMSET command such that we don't
continue to destroy and reallocate the command buffer

Added a simply library routine to append to a command buffer
using a smart_str

Made the unit tests work even if you're not compiled with
igbinary

Addresses issue #287
2013-01-18 18:05:02 -08:00
Michael Grunder 07369ed1fb Merge pull request #272 from pepve/brpoplpush
Thanks for the pull, merging.
2013-01-16 09:19:56 -08:00
michael-grunder 93f77be960 Checks for tv.tv_usec as well as tv.tv_sec when setting the read
timeout option on our socket.  We were actually ignoring timeouts
< 1 second because of this.

Nice catch by @xiaoyjy

Fixes #286
2013-01-13 21:59:13 -08:00
Pepijn Verlaan c7cb312345 Fix brpoplpush timeout reply handling 2012-11-16 09:53:19 +01:00
kotas 3764a6cd80 add Redis::OPT_READ_TIMEOUT option for issue #70 2012-10-04 22:18:18 +09:00
Nicolas Favre-Felix 6153477c4f Extend getLastError to all calls
Fixes GitHub issue #245.
2012-09-09 20:38:30 +01:00
Nicolas Favre-Felix 9138299c0c Enable conditional compilation for igbinary option 2012-09-02 11:19:14 +01:00
Remi Collet c6e13befdc missing TSRMLS_CC, fix ZTS build 2012-08-29 16:48:44 +02:00
Nicolas Favre-Felix 9c224410f3 Merge pull request #225 from pavel-krush/master
Fix segfault when using persistent connections
2012-08-29 00:41:51 -07:00
rnamiki a65b609201 fixed bug different type command returns 2012-08-15 18:14:25 +09:00
michael-grunder 89bdaf22cb Remove a debug line 2012-08-08 16:20:19 -07:00
michael-grunder 691786bc7f Properly apply a prefix on sort(), sortAsc(), and sortDesc() methods with an
included unit test to make sure it's working properly.

This fixes issue #226
2012-08-08 16:09:57 -07:00
neon dedee1f7ae fix segfault when using persistent connections 2012-08-07 01:42:08 +07:00
michael-grunder 83f3440b88 PHP 5.4 number encode fix 2012-07-02 12:56:10 -07:00
Nicolas Favre-Felix 82a5f70670 Merge branch 'master' of https://github.com/michael-grunder/phpredis into michael-grunder 2012-05-29 22:34:54 +01:00
maxbeutel 158d90b035 Fixing serializer initialization and destruction in PHP 5.4. 2012-05-29 22:18:58 +01:00
michael-grunder 8b1a64b43c TSRMLS_CC 2012-05-29 12:29:17 -07:00
Nicolas Favre-Felix 38e2cca3cf Merge branch '0-reconnect-select' 2012-05-27 22:26:08 +01:00
Nicolas Favre-Felix 2e70c5a5a9 Merge branch 'reconnect-select' of https://github.com/0/phpredis into 0-reconnect-select 2012-05-27 22:24:58 +01:00
maxbeutel 72a041c7f8 use helper for converting from double to string, use _ex version of _php_math_number_format_ex for PHP 5.4 2012-05-23 13:35:58 +02:00
maxbeutel c1bc92bf48 replace remaining occurences of _php_math_number_format 2012-05-23 12:08:37 +02:00