diff options
| author | Remi Collet <remi@remirepo.net> | 2019-10-18 15:00:46 +0200 | 
|---|---|---|
| committer | Remi Collet <remi@remirepo.net> | 2019-10-18 15:00:46 +0200 | 
| commit | 68bb93d4659f1665719af2a284b672d0d80adf01 (patch) | |
| tree | 7048aec872dda8be875aa74f4fb0de519e281053 /redis.php | |
initial work
Diffstat (limited to 'redis.php')
| -rw-r--r-- | redis.php | 69 | 
1 files changed, 69 insertions, 0 deletions
diff --git a/redis.php b/redis.php new file mode 100644 index 0000000..aacc581 --- /dev/null +++ b/redis.php @@ -0,0 +1,69 @@ +<?php +/**  + * Redis connector using FFI and libhiredis + * PoC, only for documentation purpose + * + * Copyright (c) 2019 Remi Collet + * License: CC-BY-SA + * http://creativecommons.org/licenses/by-sa/4.0/ + */ +namespace Remi; + +if (PHP_VERSION_ID < 70400 || !extension_loaded("ffi")) { +	die("PHP 7.4 with ffi extension required\n"); +} +printf("PHP version %s\n", PHP_VERSION); +if (PHP_SAPI == "cli" && !class_exists("\\Remi\\Redis")) { +	printf("Fallback on manual load\n\n"); +	require_once __DIR__ . '/preload-redis.inc'; +} else { +	printf("Use preloaded class\n\n"); +} + +// ---------------- TESTS ------------------------ +$r = new Redis("localhost", 6379, true); +try { +	var_dump($r->grrr()); +} catch(\Exception $e) { +	printf("** Catched %s: %s **\n", get_class($e), $e->getMessage()); +} + +// del / set / get +var_dump($r->del('foo')); +var_dump($r->get('foo')); +var_dump($r->set('foo', date("Y/m/d H:i:s"))); +var_dump($r->get('foo')); +unset($r); + +// incr +$r = new Redis("localhost", 6379, true); +var_dump($r->set('foo', 41)); +var_dump($r->get('foo')); +var_dump($r->incr('foo')); +var_dump($r->get('foo')); + +// list +var_dump($r->rpush('mylist', 'one')); +var_dump($r->rpush('mylist', 'too')); +var_dump($r->lset('mylist', 1, 'two')); +try { +	var_dump($r->lset('mylist', 9, 'nine')); +} catch(\Exception $e) { +	printf("** Catched %s: %s **\n", get_class($e), $e->getMessage()); +} +var_dump($r->llen('mylist')); +var_dump($r->lrange('mylist', 0, 100)); +while($r->llen('mylist')) { +	var_dump($r->lpop('mylist')); +} +var_dump($r->llen('mylist')); + +unset($r); + +// Exception in connection +try { +	$r = new Redis("localhost", 1234, true); +} catch(\Exception $e) { +	printf("** Catched %s: %s **\n", get_class($e), $e->getMessage()); +} +  | 
