From 73b4760fc47fe642ceda2f2f56cc67695c9a7311 Mon Sep 17 00:00:00 2001 From: Daniele Alessandri Date: Tue, 21 Sep 2010 16:56:52 +0200 Subject: [PATCH] New command: STRLEN (Redis v2.2-dev). --- lib/Predis.php | 7 +++++++ test/RedisCommandsTest.php | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/Predis.php b/lib/Predis.php index 85da0102..4790e77d 100644 --- a/lib/Predis.php +++ b/lib/Predis.php @@ -1746,6 +1746,9 @@ class RedisServer_vNext extends RedisServer_v2_0 { /* transactions */ 'watch' => '\Predis\Commands\Watch', 'unwatch' => '\Predis\Commands\Unwatch', + + /* commands operating on string values */ + 'strlen' => '\Predis\Commands\Strlen', )); } } @@ -2290,6 +2293,10 @@ class Substr extends Command { public function getCommandId() { return 'SUBSTR'; } } +class Strlen extends Command { + public function getCommandId() { return 'STRLEN'; } +} + /* commands operating on the key space */ class Keys extends Command { public function canBeHashed() { return false; } diff --git a/test/RedisCommandsTest.php b/test/RedisCommandsTest.php index cc9db5be..ed891123 100644 --- a/test/RedisCommandsTest.php +++ b/test/RedisCommandsTest.php @@ -240,6 +240,19 @@ class RedisCommandTestSuite extends PHPUnit_Framework_TestCase { }); } + function testStrlen() { + $this->redis->set('var', 'foobar'); + $this->assertEquals(6, $this->redis->strlen('var')); + $this->assertEquals(9, $this->redis->append('var', '___')); + $this->assertEquals(9, $this->redis->strlen('var')); + + RC::testForServerException($this, RC::EXCEPTION_WRONG_TYPE, function($test) { + $test->redis->rpush('metavars', 'foo'); + $test->redis->strlen('metavars'); + }); + } + + /* commands operating on the key space */ function testKeys() {