Install redis server:
sudo apt-get install redis-server
Copy backup configuration file:
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.default
Check if redis is installed correctly by:
redis-cli
Install Predis library:
composer require predis/predis
Add to .env file
REDIS_HOST=127.0.0.1 REDIS_PORT=6379
In services.yaml add following:
services: Predis\Client: class: Predis\Client arguments: - { host: '%env(REDIS_HOST)%' }
Example of predis client usage in Controller:
const PREFIX = 'REDIS_TEST';private $redis;
public function __construct(Client $redis)
{
$this->redis = $redis;
}/**
* @Route("/default", name="default")
*/
public function index()
{
$key = \sprintf('%s:%d', self::PREFIX, (new \DateTime())->format('Ymd'));
$data = [];if (!$this->redis->exists($key)) {
$this->redis->pipeline(
function ($pipe) use ($key, $data) {
/* @var Client $pipe */
$pipe->rpush(\sprintf('%s:key_list', self::PREFIX), [$key]);
$pipe->hmset(
$key,
['json' => json_encode(['first' => '123','second' => '456'])]
);
}
);
}dump($this->redis->lrange(\sprintf('%s:key_list', self::PREFIX), 0, -1));
dump(json_decode($this->redis->hgetall($key)['json']));return $this->render('default/index.html.twig', [
'controller_name' => 'DefaultController',
]);
}