use Kirby3 Boost instead
Kirby 3 Plugin to cache the content file using the PHP Memcached extension
This plugin is free (MIT license) but if you use it in a commercial project please consider to
- unzip master.zip as folder
site/plugins/kirby3-page-memcached
or git submodule add https://github.com/bnomei/kirby3-page-memcached.git site/plugins/kirby3-page-memcached
orcomposer require bnomei/kirby3-page-memcached
To use this plugin create Page-Models and extend the \Bnomei\MemcachedPage
class. This will read and write a copy of your Content-File to and from Memcached.
site/models/example.php
<?php
class ExamplePage extends \Bnomei\MemcachedPage
{
// that's it. all done. 👍
}
TIP: If you set Kirbys global debug option to
true
all cached Content-Files will be flushed.
site/templates/example.php
<?php
/** @var ExamplePage $page */
$checkIfContentFileIsMemcached = $page->isMemcachedPage(); // bool
How much and if you gain anything regarding performance depends on the hardware. But on most production servers reading data from RAM should be faster than reading files from SSD disks.
Defaults for | Memcached | APCu | Redis |
---|---|---|---|
max memory size | 64MB | 32MB | 0 (none) |
size of key/value pair | 1MB | 4MB | 512MB |
The Redis Cachedriver Plugin has a RedisPage
class that works pretty much like the MemcachedPage
class but uses Redis.
bnomei.page-memcached. | Default | Description |
---|---|---|
host | 127.0.0.1 |
|
port | 11211 |
|
prefix | page-memcached |
|
expire | 0 |
in minutes, 0 = infinite |
enforce | true |
will throw an Exception if Memcached class is missing. Turn off if you use php CLI without Memcached support. |
TIP: To connect to a unix socket use its id as value for
host
and set port to0
PHP CLI rarely has Memcached enabled by default. In that case the plugin will read the page content file from disk.
- PHP Memcached extension and class
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.