PSR-16 cache on top of the RoadRunner KV plugin
This package lets a PHP application use the storages of the RoadRunner KV plugin (memory, boltdb, redis, memcached and others) as a PSR-16 cache, talking to RoadRunner over RPC.
composer require roadrunner/kvYou can use the convenient installer to download the latest available compatible version of RoadRunner server:
composer require roadrunner/cli --dev
vendor/bin/rr getFirst you need to add at least one kv plugin to your roadrunner configuration. For example, such a configuration would be quite feasible to run:
rpc:
listen: tcp://127.0.0.1:6001
kv:
test:
driver: memory
config:
interval: 10Note
Read more about all available drivers on the documentation page.
After starting the server with this configuration, one driver named "test"
will be available to you.
The following code will allow writing and reading an arbitrary value from the RoadRunner server.
<?php
use Spiral\Goridge\RPC\RPC;
use Spiral\RoadRunner\KeyValue\Factory;
require __DIR__ . '/vendor/autoload.php';
$factory = new Factory(RPC::create('tcp://127.0.0.1:6001'));
$cache = $factory->select('test');
// After that you can write and read arbitrary values:
$cache->set('key', 'value');
echo $cache->get('key'); // string(5) "value"Values are serialized with PHP's native serialize() by default. Pass another serializer to the factory to change that:
IgbinarySerializer— requires theigbinaryextension;SodiumSerializer— encrypts values produced by an inner serializer with a keypair fromsodium_crypto_box_keypair(), requires thesodiumextension.
use Spiral\RoadRunner\KeyValue\Factory;
use Spiral\RoadRunner\KeyValue\Serializer\DefaultSerializer;
use Spiral\RoadRunner\KeyValue\Serializer\SodiumSerializer;
$factory = new Factory($rpc, new SodiumSerializer(new DefaultSerializer(), $key));