Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2020-12-22 00:12:21 +0300
committerPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2020-12-22 00:12:21 +0300
commit62153473209d5b5107e8b2caa40011b76d99d85f (patch)
tree442eef938f00cb1fc7d3a203872cf0ee0af14c2f
parentee82299666feaab51b87015ad7914f498a98d761 (diff)
[WIP] Issue #1894
Add Redis::sMisMember command.
-rw-r--r--php_redis.h1
-rw-r--r--redis.c7
-rw-r--r--tests/RedisTest.php21
3 files changed, 29 insertions, 0 deletions
diff --git a/php_redis.h b/php_redis.h
index 24ba89a7..88e9178f 100644
--- a/php_redis.h
+++ b/php_redis.h
@@ -94,6 +94,7 @@ PHP_METHOD(Redis, sDiffStore);
PHP_METHOD(Redis, sInter);
PHP_METHOD(Redis, sInterStore);
PHP_METHOD(Redis, sMembers);
+PHP_METHOD(Redis, sMisMember);
PHP_METHOD(Redis, sMove);
PHP_METHOD(Redis, sPop);
PHP_METHOD(Redis, sRandMember);
diff --git a/redis.c b/redis.c
index 0f3a230e..474d2188 100644
--- a/redis.c
+++ b/redis.c
@@ -385,6 +385,7 @@ static zend_function_entry redis_functions[] = {
PHP_ME(Redis, sInter, arginfo_nkeys, ZEND_ACC_PUBLIC)
PHP_ME(Redis, sInterStore, arginfo_dst_nkeys, ZEND_ACC_PUBLIC)
PHP_ME(Redis, sMembers, arginfo_key, ZEND_ACC_PUBLIC)
+ PHP_ME(Redis, sMisMember, arginfo_key_members, ZEND_ACC_PUBLIC)
PHP_ME(Redis, sMove, arginfo_smove, ZEND_ACC_PUBLIC)
PHP_ME(Redis, sPop, arginfo_key, ZEND_ACC_PUBLIC)
PHP_ME(Redis, sRandMember, arginfo_srand_member, ZEND_ACC_PUBLIC)
@@ -1653,6 +1654,12 @@ PHP_METHOD(Redis, sMembers)
REDIS_PROCESS_KW_CMD("SMEMBERS", redis_key_cmd,
redis_sock_read_multibulk_reply);
}
+
+/* {{{ proto array Redis::sMisMember(string key, string member0, ...memberN) */
+PHP_METHOD(Redis, sMisMember)
+{
+ REDIS_PROCESS_KW_CMD("SMISMEMBER", redis_key_varval_cmd, redis_sock_read_multibulk_reply);
+}
/* }}} */
/* {{{ proto array Redis::sInter(string key0, ... string keyN) */
diff --git a/tests/RedisTest.php b/tests/RedisTest.php
index c9b147b8..6511b7ee 100644
--- a/tests/RedisTest.php
+++ b/tests/RedisTest.php
@@ -1455,6 +1455,27 @@ class Redis_Test extends TestSuite
$this->assertEquals($array, $sMembers); // test alias
}
+ public function testsMisMember()
+ {
+ // Only available since 6.2.0
+ if (version_compare($this->version, '6.2.0') < 0) {
+ $this->markTestSkipped();
+ return;
+ }
+
+ $this->redis->del('set');
+
+ $this->redis->sAdd('set', 'val');
+ $this->redis->sAdd('set', 'val2');
+ $this->redis->sAdd('set', 'val3');
+
+ $misMembers = $this->redis->sMisMember('set', 'val', 'notamember', 'val3');
+ $this->assertEquals([1, 0, 1], $smembers);
+
+ $misMembers = $this->redis->sMisMember('wrongkey', 'val', 'val2', 'val3');
+ $this->assertEquals([0, 0, 0], $misMembers);
+ }
+
public function testlSet() {
$this->redis->del('list');