diff options
author | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2020-12-22 00:12:21 +0300 |
---|---|---|
committer | Pavlo Yatsukhnenko <yatsukhnenko@gmail.com> | 2020-12-22 00:12:21 +0300 |
commit | 62153473209d5b5107e8b2caa40011b76d99d85f (patch) | |
tree | 442eef938f00cb1fc7d3a203872cf0ee0af14c2f | |
parent | ee82299666feaab51b87015ad7914f498a98d761 (diff) |
[WIP] Issue #1894
Add Redis::sMisMember command.
-rw-r--r-- | php_redis.h | 1 | ||||
-rw-r--r-- | redis.c | 7 | ||||
-rw-r--r-- | tests/RedisTest.php | 21 |
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); @@ -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'); |