Redis based Cache-Driver
Support open source!
This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?
Be kind. Share a little. Thanks.
‐ Bruno
M | O | N | E | Y |
---|---|---|---|---|
Github sponsor | Patreon | Buy Me a Coffee | Paypal dontation | Hire me |
site/plugins/kirby3-redis-cachedriver
orgit submodule add https://github.com/bnomei/kirby3-redis-cachedriver.git site/plugins/kirby3-redis-cachedriver
orcomposer require bnomei/kirby3-redis-cachedriver
Memcached and APCu have more restrictive defaults. Redis does not have these limitations and is by very fast with proper configuration.
Defaults for | Memcached | APCu | Redis |
---|---|---|---|
max memory size | 64MB | 32MB | 0 (none) |
size of key/value pair | 1MB | 4MB | 512MB |
Set your Kirby 3 Cache-Driver to redis
for Plugin caches or in your site/config/config.php
.
All redis related params can be callbacks. You might even load values from an .env File.
site/config/config.php
return [
'bnomei.boost.cache' => [
'type' => 'redis',
'host' => function() { return env('REDIS_HOST'); },
'port' => function() { return env('REDIS_PORT'); },
// 'database' => function() { return env('REDIS_DATABASE'); },
// 'password' => function() { return env('REDIS_PASSWORD'); },
],
];
$redis = \Bnomei\Redis::singleton();
$redis->set('key', 'value', $expireInMinutes);
$value = $redis->get('key', $default);
$redis->remove('key');
$redis->flush(); // data in memory
$redis->flushdb(); // DANGER: flushes full redis db!!!
$redis = new \Bnomei\Redis($options, $optionsClient);
$client = $redis->redisClient();
$dbsize = $client->dbsize(); // https://bit.ly/2Z8YKyN
$redis = new \Bnomei\Redis($options, $optionsClient);
$redis->benchmark(1000);
redis : 0.29747581481934
file : 0.24331998825073
ATTENTION: This will create and remove a lot of cache files and entries on redis
When Kirbys global debug config is set to true
no caches will be read. But entries will be created. This will make you live easier – trust me.
You need to set the cache driver for the lapse plugin to redis
.
site/config/config.php
<?php
return [
'bnomei.lapse.cache' => ['type' => 'redis'],
'bnomei.boost.cache' => ['type' => 'redis'],
//... other options
];
Use Kirby 3 Boost to setup a cache for content files.
bnomei.redis-cachedriver. | Default | Description | |
---|---|---|---|
store | true |
keep accessed cache items stored in PHP memory for faster recurring access | |
store-ignore | `` | if key contains that string then ignore | |
preload | true |
bool | int in minutes, will cache preload recently used data using a pipeline on init |
host | 127.0.0.1 |
||
port | 6379 |
This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.
It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.