mirror of
https://github.com/php-win-ext/phpredis.git
synced 2026-03-24 00:52:16 +01:00
DBSIZE + slight refactoring. + test.
This commit is contained in:
@@ -70,6 +70,7 @@ PHP_METHOD(Redis, bgSave);
|
||||
PHP_METHOD(Redis, lastSave);
|
||||
PHP_METHOD(Redis, flushDB);
|
||||
PHP_METHOD(Redis, flushAll);
|
||||
PHP_METHOD(Redis, dbSize);
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
#define PHP_REDIS_API __declspec(dllexport)
|
||||
|
||||
36
redis.c
36
redis.c
@@ -84,6 +84,7 @@ zend_function_entry redis_functions[] = {
|
||||
PHP_ME(Redis, lastSave, NULL, ZEND_ACC_PUBLIC)
|
||||
PHP_ME(Redis, flushDB, NULL, ZEND_ACC_PUBLIC)
|
||||
PHP_ME(Redis, flushAll, NULL, ZEND_ACC_PUBLIC)
|
||||
PHP_ME(Redis, dbSize, NULL, ZEND_ACC_PUBLIC)
|
||||
PHP_MALIAS(Redis, open, connect, NULL, ZEND_ACC_PUBLIC)
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
@@ -640,6 +641,7 @@ PHP_METHOD(Redis, set)
|
||||
efree(cmd);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
efree(cmd);
|
||||
if ((response = redis_sock_read(redis_sock, &response_len TSRMLS_CC)) == NULL) {
|
||||
RETURN_FALSE;
|
||||
@@ -2351,7 +2353,7 @@ PHPAPI void generic_empty_cmd(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int cmd_l
|
||||
*/
|
||||
PHP_METHOD(Redis, save)
|
||||
{
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "SAVE\r\n", sizeof("SAVE\r\n")-1);
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "SAVE\r\n", sizeof("SAVE\r\n")-1 TSRMLS_CC);
|
||||
|
||||
}
|
||||
/* }}} */
|
||||
@@ -2360,20 +2362,15 @@ PHP_METHOD(Redis, save)
|
||||
*/
|
||||
PHP_METHOD(Redis, bgSave)
|
||||
{
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "BGSAVE\r\n", sizeof("BGSAVE\r\n")-1);
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "BGSAVE\r\n", sizeof("BGSAVE\r\n")-1 TSRMLS_CC);
|
||||
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
PHPAPI void generic_empty_long_cmd(INTERNAL_FUNCTION_PARAMETERS, char *cmd, int cmd_len TSRMLS_DC) {
|
||||
|
||||
/* {{{ proto integer Redis::lastSave()
|
||||
*/
|
||||
PHP_METHOD(Redis, lastSave)
|
||||
{
|
||||
zval *object;
|
||||
RedisSock *redis_sock;
|
||||
char cmd[] = "LASTSAVE\r\n";
|
||||
int cmd_len = sizeof(cmd)-1;
|
||||
char *response;
|
||||
int response_len;
|
||||
long val = 0;
|
||||
@@ -2403,14 +2400,21 @@ PHP_METHOD(Redis, lastSave)
|
||||
efree(response);
|
||||
RETURN_LONG(val);
|
||||
}
|
||||
|
||||
/* {{{ proto integer Redis::lastSave()
|
||||
*/
|
||||
PHP_METHOD(Redis, lastSave)
|
||||
{
|
||||
generic_empty_long_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "LASTSAVE\r\n", sizeof("LASTSAVE\r\n") TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/* {{{ proto bool Redis::flushDB()
|
||||
*/
|
||||
PHP_METHOD(Redis, flushDB)
|
||||
{
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "FLUSHDB\r\n", sizeof("FLUSHDB\r\n")-1);
|
||||
RETURN_TRUE;
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "FLUSHDB\r\n", sizeof("FLUSHDB\r\n")-1 TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2418,10 +2422,18 @@ PHP_METHOD(Redis, flushDB)
|
||||
*/
|
||||
PHP_METHOD(Redis, flushAll)
|
||||
{
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "FLUSHALL\r\n", sizeof("FLUSHALL\r\n")-1);
|
||||
RETURN_TRUE;
|
||||
generic_empty_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "FLUSHALL\r\n", sizeof("FLUSHALL\r\n")-1 TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto int Redis::dbSize()
|
||||
*/
|
||||
PHP_METHOD(Redis, dbSize)
|
||||
{
|
||||
generic_empty_long_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "DBSIZE\r\n", sizeof("DBSIZE\r\n") TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
|
||||
/* vim: set tabstop=4 expandtab: */
|
||||
|
||||
@@ -1045,7 +1045,9 @@ class Redis_Test extends PHPUnit_Framework_TestCase
|
||||
}
|
||||
|
||||
public function testlastSave() {
|
||||
$this->redis->save();
|
||||
while(!$this->redis->save()) {
|
||||
sleep(1);
|
||||
}
|
||||
$t_php = microtime(TRUE);
|
||||
$t_redis = $this->redis->lastSave();
|
||||
|
||||
@@ -1064,6 +1066,12 @@ class Redis_Test extends PHPUnit_Framework_TestCase
|
||||
$this->assertTrue($this->redis->getKeys('*') === array());
|
||||
}
|
||||
|
||||
public function testdbSize() {
|
||||
$this->assertTrue($this->redis->flushDB());
|
||||
$this->redis->set('x', 'y');
|
||||
$this->assertTrue($this->redis->dbSize() === 1);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user