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:
authormichael-grunder <michael.grunder@gmail.com>2022-10-02 02:41:52 +0300
committermichael-grunder <michael.grunder@gmail.com>2022-10-02 02:41:52 +0300
commit111191ad5192a725de1a970520d120852b2cae4b (patch)
treeddc5cf3f5e9cd56ad16a44e5761e334e600ffb99
parentc0e839f6ac45d51adbb109b246c9b3565c3b61e1 (diff)
EXPIRETIME and PEXPIRETIMEexpiretime
-rw-r--r--redis.c12
-rw-r--r--redis.stub.php4
-rw-r--r--redis_arginfo.h12
-rw-r--r--redis_cluster.c10
-rw-r--r--redis_cluster.stub.php4
-rw-r--r--redis_cluster_arginfo.h12
-rw-r--r--redis_cluster_legacy_arginfo.h10
-rw-r--r--redis_legacy_arginfo.h10
-rw-r--r--tests/RedisTest.php15
9 files changed, 85 insertions, 4 deletions
diff --git a/redis.c b/redis.c
index 1a9af65b..e7f5506c 100644
--- a/redis.c
+++ b/redis.c
@@ -1654,6 +1654,18 @@ PHP_METHOD(Redis, pexpireAt) {
}
/* }}} */
+/* {{{ proto Redis::expiretime(string $key): int */
+PHP_METHOD(Redis, expiretime) {
+ REDIS_PROCESS_KW_CMD("EXPIRETIME", redis_key_cmd, redis_long_response);
+}
+/* }}} */
+
+/* {{{ proto Redis::expiretime(string $key): int */
+PHP_METHOD(Redis, pexpiretime) {
+ REDIS_PROCESS_KW_CMD("PEXPIRETIME", redis_key_cmd, redis_long_response);
+}
+
+/* }}} */
/* {{{ proto array Redis::lSet(string key, int index, string value) */
PHP_METHOD(Redis, lSet) {
REDIS_PROCESS_KW_CMD("LSET", redis_key_long_val_cmd,
diff --git a/redis.stub.php b/redis.stub.php
index c3740b8d..79e2096d 100644
--- a/redis.stub.php
+++ b/redis.stub.php
@@ -120,6 +120,10 @@ class Redis {
public function failover(?array $to = null, bool $abort = false, int $timeout = 0): bool;
+ public function expiretime(string $key): Redis|int|false;
+
+ public function pexpiretime(string $key): Redis|int|false;
+
public function flushAll(?bool $sync = null): bool;
public function flushDB(?bool $sync = null): bool;
diff --git a/redis_arginfo.h b/redis_arginfo.h
index 7c2cdd43..86f6373d 100644
--- a/redis_arginfo.h
+++ b/redis_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 1c32099810101448fc32ce331e2b494dabc22cc4 */
+ * Stub hash: 177e08fec3c3ef380c1cdbab99235090c656cde4 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "null")
@@ -190,6 +190,12 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Redis_failover, 0, 0, _IS_
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, timeout, IS_LONG, 0, "0")
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_Redis_expiretime, 0, 1, Redis, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_Redis_pexpiretime arginfo_class_Redis_expiretime
+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Redis_flushAll, 0, 0, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, sync, _IS_BOOL, 1, "null")
ZEND_END_ARG_INFO()
@@ -1042,6 +1048,8 @@ ZEND_METHOD(Redis, exists);
ZEND_METHOD(Redis, expire);
ZEND_METHOD(Redis, expireAt);
ZEND_METHOD(Redis, failover);
+ZEND_METHOD(Redis, expiretime);
+ZEND_METHOD(Redis, pexpiretime);
ZEND_METHOD(Redis, flushAll);
ZEND_METHOD(Redis, flushDB);
ZEND_METHOD(Redis, geoadd);
@@ -1277,6 +1285,8 @@ static const zend_function_entry class_Redis_methods[] = {
ZEND_ME(Redis, expire, arginfo_class_Redis_expire, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, expireAt, arginfo_class_Redis_expireAt, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, failover, arginfo_class_Redis_failover, ZEND_ACC_PUBLIC)
+ ZEND_ME(Redis, expiretime, arginfo_class_Redis_expiretime, ZEND_ACC_PUBLIC)
+ ZEND_ME(Redis, pexpiretime, arginfo_class_Redis_pexpiretime, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, flushAll, arginfo_class_Redis_flushAll, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, flushDB, arginfo_class_Redis_flushDB, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, geoadd, arginfo_class_Redis_geoadd, ZEND_ACC_PUBLIC)
diff --git a/redis_cluster.c b/redis_cluster.c
index cee00ae2..00fa3801 100644
--- a/redis_cluster.c
+++ b/redis_cluster.c
@@ -1273,6 +1273,16 @@ PHP_METHOD(RedisCluster, pexpireat) {
}
/* }}} */
+/* {{{ Redis::expiretime(string $key): int */
+PHP_METHOD(RedisCluster, expiretime) {
+ CLUSTER_PROCESS_KW_CMD("EXPIRETIME", redis_key_cmd, cluster_long_resp, 1);
+}
+
+/* {{{ Redis::pexpiretime(string $key): int */
+PHP_METHOD(RedisCluster, pexpiretime) {
+ CLUSTER_PROCESS_KW_CMD("PEXPIRETIME", redis_key_cmd, cluster_long_resp, 1);
+}
+
/* {{{ proto long RedisCluster::append(string key, string val) */
PHP_METHOD(RedisCluster, append) {
CLUSTER_PROCESS_KW_CMD("APPEND", redis_kv_cmd, cluster_long_resp, 0);
diff --git a/redis_cluster.stub.php b/redis_cluster.stub.php
index 31ba4ef6..f750e072 100644
--- a/redis_cluster.stub.php
+++ b/redis_cluster.stub.php
@@ -92,6 +92,10 @@ class RedisCluster {
public function expireat(string $key, int $timestamp): bool;
+ public function expiretime(string $key): Redis|int|false;
+
+ public function pexpiretime(string $key): Redis|int|false;
+
public function flushall(string|array $node, bool $async = false): bool;
public function flushdb(string|array $node, bool $async = false): bool;
diff --git a/redis_cluster_arginfo.h b/redis_cluster_arginfo.h
index bbf10c92..dbfb3026 100644
--- a/redis_cluster_arginfo.h
+++ b/redis_cluster_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 45d120a35a1c256964c45c71ab91c025ea00e862 */
+ * Stub hash: d6e8120d2edd3cb4a18baa99c6013ac428049448 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
@@ -183,6 +183,12 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_expireat, 0,
ZEND_ARG_TYPE_INFO(0, timestamp, IS_LONG, 0)
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_expiretime, 0, 1, Redis, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RedisCluster_pexpiretime arginfo_class_RedisCluster_expiretime
+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_flushall, 0, 1, _IS_BOOL, 0)
ZEND_ARG_TYPE_MASK(0, node, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, async, _IS_BOOL, 0, "false")
@@ -894,6 +900,8 @@ ZEND_METHOD(RedisCluster, exec);
ZEND_METHOD(RedisCluster, exists);
ZEND_METHOD(RedisCluster, expire);
ZEND_METHOD(RedisCluster, expireat);
+ZEND_METHOD(RedisCluster, expiretime);
+ZEND_METHOD(RedisCluster, pexpiretime);
ZEND_METHOD(RedisCluster, flushall);
ZEND_METHOD(RedisCluster, flushdb);
ZEND_METHOD(RedisCluster, geoadd);
@@ -1091,6 +1099,8 @@ static const zend_function_entry class_RedisCluster_methods[] = {
ZEND_ME(RedisCluster, exists, arginfo_class_RedisCluster_exists, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, expire, arginfo_class_RedisCluster_expire, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, expireat, arginfo_class_RedisCluster_expireat, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, expiretime, arginfo_class_RedisCluster_expiretime, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, pexpiretime, arginfo_class_RedisCluster_pexpiretime, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, flushall, arginfo_class_RedisCluster_flushall, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, flushdb, arginfo_class_RedisCluster_flushdb, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, geoadd, arginfo_class_RedisCluster_geoadd, ZEND_ACC_PUBLIC)
diff --git a/redis_cluster_legacy_arginfo.h b/redis_cluster_legacy_arginfo.h
index 5669c8be..a1538169 100644
--- a/redis_cluster_legacy_arginfo.h
+++ b/redis_cluster_legacy_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 45d120a35a1c256964c45c71ab91c025ea00e862 */
+ * Stub hash: d6e8120d2edd3cb4a18baa99c6013ac428049448 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
ZEND_ARG_INFO(0, name)
@@ -163,6 +163,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_expireat, 0, 0, 2)
ZEND_ARG_INFO(0, timestamp)
ZEND_END_ARG_INFO()
+#define arginfo_class_RedisCluster_expiretime arginfo_class_RedisCluster__prefix
+
+#define arginfo_class_RedisCluster_pexpiretime arginfo_class_RedisCluster__prefix
+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_flushall, 0, 0, 1)
ZEND_ARG_INFO(0, node)
ZEND_ARG_INFO(0, async)
@@ -782,6 +786,8 @@ ZEND_METHOD(RedisCluster, exec);
ZEND_METHOD(RedisCluster, exists);
ZEND_METHOD(RedisCluster, expire);
ZEND_METHOD(RedisCluster, expireat);
+ZEND_METHOD(RedisCluster, expiretime);
+ZEND_METHOD(RedisCluster, pexpiretime);
ZEND_METHOD(RedisCluster, flushall);
ZEND_METHOD(RedisCluster, flushdb);
ZEND_METHOD(RedisCluster, geoadd);
@@ -979,6 +985,8 @@ static const zend_function_entry class_RedisCluster_methods[] = {
ZEND_ME(RedisCluster, exists, arginfo_class_RedisCluster_exists, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, expire, arginfo_class_RedisCluster_expire, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, expireat, arginfo_class_RedisCluster_expireat, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, expiretime, arginfo_class_RedisCluster_expiretime, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, pexpiretime, arginfo_class_RedisCluster_pexpiretime, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, flushall, arginfo_class_RedisCluster_flushall, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, flushdb, arginfo_class_RedisCluster_flushdb, ZEND_ACC_PUBLIC)
ZEND_ME(RedisCluster, geoadd, arginfo_class_RedisCluster_geoadd, ZEND_ACC_PUBLIC)
diff --git a/redis_legacy_arginfo.h b/redis_legacy_arginfo.h
index 7954c6f2..0a0f7016 100644
--- a/redis_legacy_arginfo.h
+++ b/redis_legacy_arginfo.h
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 1c32099810101448fc32ce331e2b494dabc22cc4 */
+ * Stub hash: 177e08fec3c3ef380c1cdbab99235090c656cde4 */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
ZEND_ARG_INFO(0, options)
@@ -174,6 +174,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_failover, 0, 0, 0)
ZEND_ARG_INFO(0, timeout)
ZEND_END_ARG_INFO()
+#define arginfo_class_Redis_expiretime arginfo_class_Redis__prefix
+
+#define arginfo_class_Redis_pexpiretime arginfo_class_Redis__prefix
+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_flushAll, 0, 0, 0)
ZEND_ARG_INFO(0, sync)
ZEND_END_ARG_INFO()
@@ -934,6 +938,8 @@ ZEND_METHOD(Redis, exists);
ZEND_METHOD(Redis, expire);
ZEND_METHOD(Redis, expireAt);
ZEND_METHOD(Redis, failover);
+ZEND_METHOD(Redis, expiretime);
+ZEND_METHOD(Redis, pexpiretime);
ZEND_METHOD(Redis, flushAll);
ZEND_METHOD(Redis, flushDB);
ZEND_METHOD(Redis, geoadd);
@@ -1169,6 +1175,8 @@ static const zend_function_entry class_Redis_methods[] = {
ZEND_ME(Redis, expire, arginfo_class_Redis_expire, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, expireAt, arginfo_class_Redis_expireAt, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, failover, arginfo_class_Redis_failover, ZEND_ACC_PUBLIC)
+ ZEND_ME(Redis, expiretime, arginfo_class_Redis_expiretime, ZEND_ACC_PUBLIC)
+ ZEND_ME(Redis, pexpiretime, arginfo_class_Redis_pexpiretime, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, flushAll, arginfo_class_Redis_flushAll, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, flushDB, arginfo_class_Redis_flushDB, ZEND_ACC_PUBLIC)
ZEND_ME(Redis, geoadd, arginfo_class_Redis_geoadd, ZEND_ACC_PUBLIC)
diff --git a/tests/RedisTest.php b/tests/RedisTest.php
index 2e4402f3..4d022a6e 100644
--- a/tests/RedisTest.php
+++ b/tests/RedisTest.php
@@ -605,6 +605,21 @@ class Redis_Test extends TestSuite
$this->assertTrue($success);
}
+ public function testExpiretime() {
+ if(version_compare($this->version, "7.0.0") < 0) {
+ $this->markTestSkipped();
+ }
+
+ $now = time();
+
+ $this->assertTrue($this->redis->set('key1', 'value'));
+ $this->assertTrue($this->redis->expireat('key1', $now + 10));
+ $this->assertEquals($now + 10, $this->redis->expiretime('key1'));
+ $this->assertEquals(1000 * ($now + 10), $this->redis->pexpiretime('key1'));
+
+ $this->redis->del('key1');
+ }
+
public function testSetEx() {
$this->redis->del('key');