Implement SMISMEMBER for RedisCluster

See #1894
This commit is contained in:
michael-grunder
2022-11-30 17:54:30 -08:00
parent 7a4cee2d66
commit abfac47be0
5 changed files with 24 additions and 6 deletions

View File

@@ -993,6 +993,12 @@ PHP_METHOD(RedisCluster, sismember) {
}
/* }}} */
/* {{{ proto array RedisCluster::smismember(string key, string member0, ...memberN) */
PHP_METHOD(RedisCluster, smismember) {
CLUSTER_PROCESS_KW_CMD("SMISMEMBER", redis_key_varval_cmd, cluster_variant_resp, 1);
}
/* }}} */
/* {{{ proto long RedisCluster::sadd(string key, string val1 [, ...]) */
PHP_METHOD(RedisCluster, sadd) {
CLUSTER_PROCESS_KW_CMD("SADD", redis_key_varval_cmd, cluster_long_resp, 0);

View File

@@ -506,7 +506,7 @@ class RedisCluster {
* which cluster node we want to send the command to.
* @param string $sections Optional section(s) you wish Redis server to return.
*
* @return Redis|array|false
* @return RedisCluster|array|false
*/
public function info(string|array $key_or_address, string ...$sections): RedisCluster|array|false;
@@ -816,6 +816,11 @@ class RedisCluster {
*/
public function sismember(string $key, mixed $value): RedisCluster|bool;
/**
* @see Redis::smismember
*/
public function smismember(string $key, string $member, string ...$other_members): RedisCluster|array|false;
/**
* @see Redis::slowlog
*/
@@ -945,7 +950,7 @@ class RedisCluster {
/**
* @see Redis::xautoclaim
*/
public function xautoclaim(string $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): Redis|bool|array;
public function xautoclaim(string $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): RedisCluster|bool|array;
/**
* @see Redis::xinfo

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 9a900fefb0ccb36638768a9d08909c68fff26c10 */
* Stub hash: 6b0a73d60de6e892ecaaabfe5f69245ebf225fee */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
@@ -676,6 +676,8 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_setnx
#define arginfo_class_RedisCluster_smismember arginfo_class_RedisCluster_geohash
#define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script
#define arginfo_class_RedisCluster_smembers arginfo_class_RedisCluster_hgetall
@@ -781,7 +783,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_xgroup, 0, 1,
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, entries_read, IS_LONG, 0, "-2")
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xautoclaim, 0, 5, Redis, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_xautoclaim, 0, 5, RedisCluster, MAY_BE_BOOL|MAY_BE_ARRAY)
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, group, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, consumer, IS_STRING, 0)
@@ -1111,6 +1113,7 @@ ZEND_METHOD(RedisCluster, sinter);
ZEND_METHOD(RedisCluster, sintercard);
ZEND_METHOD(RedisCluster, sinterstore);
ZEND_METHOD(RedisCluster, sismember);
ZEND_METHOD(RedisCluster, smismember);
ZEND_METHOD(RedisCluster, slowlog);
ZEND_METHOD(RedisCluster, smembers);
ZEND_METHOD(RedisCluster, smove);
@@ -1322,6 +1325,7 @@ static const zend_function_entry class_RedisCluster_methods[] = {
ZEND_ME(RedisCluster, sintercard, arginfo_class_RedisCluster_sintercard, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, sinterstore, arginfo_class_RedisCluster_sinterstore, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, sismember, arginfo_class_RedisCluster_sismember, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smismember, arginfo_class_RedisCluster_smismember, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, slowlog, arginfo_class_RedisCluster_slowlog, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smembers, arginfo_class_RedisCluster_smembers, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smove, arginfo_class_RedisCluster_smove, ZEND_ACC_PUBLIC)

View File

@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 9a900fefb0ccb36638768a9d08909c68fff26c10 */
* Stub hash: 6b0a73d60de6e892ecaaabfe5f69245ebf225fee */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_INFO(0, name)
@@ -572,6 +572,8 @@ ZEND_END_ARG_INFO()
#define arginfo_class_RedisCluster_sismember arginfo_class_RedisCluster_append
#define arginfo_class_RedisCluster_smismember arginfo_class_RedisCluster_geohash
#define arginfo_class_RedisCluster_slowlog arginfo_class_RedisCluster_script
#define arginfo_class_RedisCluster_smembers arginfo_class_RedisCluster__prefix
@@ -962,6 +964,7 @@ ZEND_METHOD(RedisCluster, sinter);
ZEND_METHOD(RedisCluster, sintercard);
ZEND_METHOD(RedisCluster, sinterstore);
ZEND_METHOD(RedisCluster, sismember);
ZEND_METHOD(RedisCluster, smismember);
ZEND_METHOD(RedisCluster, slowlog);
ZEND_METHOD(RedisCluster, smembers);
ZEND_METHOD(RedisCluster, smove);
@@ -1173,6 +1176,7 @@ static const zend_function_entry class_RedisCluster_methods[] = {
ZEND_ME(RedisCluster, sintercard, arginfo_class_RedisCluster_sintercard, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, sinterstore, arginfo_class_RedisCluster_sinterstore, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, sismember, arginfo_class_RedisCluster_sismember, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smismember, arginfo_class_RedisCluster_smismember, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, slowlog, arginfo_class_RedisCluster_slowlog, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smembers, arginfo_class_RedisCluster_smembers, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, smove, arginfo_class_RedisCluster_smove, ZEND_ACC_PUBLIC)

View File

@@ -53,7 +53,6 @@ class Redis_Cluster_Test extends Redis_Test {
public function testlMove() { return $this->markTestSkipped(); }
public function testlPos() { return $this->marktestSkipped(); }
public function testsMisMember() { return $this->markTestSkipped(); }
public function testzDiff() { return $this->markTestSkipped(); }
public function testzInter() { return $this->markTestSkipped(); }
public function testzUnion() { return $this->markTestSkipped(); }