Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ae23824

Browse files
yatsukhnenkomichael-grunder
authored andcommitted
[WIP] Issue #1894
Add Redis::sMisMember command.
1 parent 89a871e commit ae23824

3 files changed

Lines changed: 29 additions & 0 deletions

File tree

php_redis.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ PHP_METHOD(Redis, sDiffStore);
9494
PHP_METHOD(Redis, sInter);
9595
PHP_METHOD(Redis, sInterStore);
9696
PHP_METHOD(Redis, sMembers);
97+
PHP_METHOD(Redis, sMisMember);
9798
PHP_METHOD(Redis, sMove);
9899
PHP_METHOD(Redis, sPop);
99100
PHP_METHOD(Redis, sRandMember);

redis.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,7 @@ static zend_function_entry redis_functions[] = {
385385
PHP_ME(Redis, sInter, arginfo_nkeys, ZEND_ACC_PUBLIC)
386386
PHP_ME(Redis, sInterStore, arginfo_dst_nkeys, ZEND_ACC_PUBLIC)
387387
PHP_ME(Redis, sMembers, arginfo_key, ZEND_ACC_PUBLIC)
388+
PHP_ME(Redis, sMisMember, arginfo_key_members, ZEND_ACC_PUBLIC)
388389
PHP_ME(Redis, sMove, arginfo_smove, ZEND_ACC_PUBLIC)
389390
PHP_ME(Redis, sPop, arginfo_key, ZEND_ACC_PUBLIC)
390391
PHP_ME(Redis, sRandMember, arginfo_srand_member, ZEND_ACC_PUBLIC)
@@ -1684,6 +1685,12 @@ PHP_METHOD(Redis, sMembers)
16841685
REDIS_PROCESS_KW_CMD("SMEMBERS", redis_key_cmd,
16851686
redis_sock_read_multibulk_reply);
16861687
}
1688+
1689+
/* {{{ proto array Redis::sMisMember(string key, string member0, ...memberN) */
1690+
PHP_METHOD(Redis, sMisMember)
1691+
{
1692+
REDIS_PROCESS_KW_CMD("SMISMEMBER", redis_key_varval_cmd, redis_sock_read_multibulk_reply);
1693+
}
16871694
/* }}} */
16881695

16891696
/* {{{ proto array Redis::sInter(string key0, ... string keyN) */

tests/RedisTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1455,6 +1455,27 @@ public function testsmembers()
14551455
$this->assertEquals($array, $sMembers); // test alias
14561456
}
14571457

1458+
public function testsMisMember()
1459+
{
1460+
// Only available since 6.2.0
1461+
if (version_compare($this->version, '6.2.0') < 0) {
1462+
$this->markTestSkipped();
1463+
return;
1464+
}
1465+
1466+
$this->redis->del('set');
1467+
1468+
$this->redis->sAdd('set', 'val');
1469+
$this->redis->sAdd('set', 'val2');
1470+
$this->redis->sAdd('set', 'val3');
1471+
1472+
$misMembers = $this->redis->sMisMember('set', 'val', 'notamember', 'val3');
1473+
$this->assertEquals([1, 0, 1], $smembers);
1474+
1475+
$misMembers = $this->redis->sMisMember('wrongkey', 'val', 'val2', 'val3');
1476+
$this->assertEquals([0, 0, 0], $misMembers);
1477+
}
1478+
14581479
public function testlSet() {
14591480

14601481
$this->redis->del('list');

0 commit comments

Comments
 (0)