Рейтинг: 2  
Новая
Предложил Валерий Чебан 04.10.2019 15:53:59

Сделать возможность кешировать данные в различных местах под одним ядром

Например, некоторые части приложения кешировать в APCu а остальные - в файлы.

use \Bitrix\Main\Data\Cache;
// получаем экземпляр класса c конфигурацией cache_config_name
$cache = Cache::createInstance('cache_config_name'); 


файл /bitrix/.settings.php по аналогии с несколькими connections для бд

'cache' => [
   'value' =>
      [
         'default' => [
            'type' => [
               'class_name' =>
                  '\\Bitrix\\Main\\Data\\CacheEngineFiles'
            ]
         ],
         'cache_config_name' => [
            'type' => [
               'class_name' =>
                  '\\Bitrix\\Main\\Data\\CacheEngineRedis',
               'extension' => 'redis'
            ],
            'redis' => [
               'host' => '127.0.0.1',
               'port' => '6379'
            ]
         ],
         'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
      ]   
Рейтинг: 1.185  
На голосовании
Предложил Клёпов Роман 02.11.2016 14:47:20

Очистка файлов кеша для отдельного сайта

Добрый день, коллеги!

Периодически приходится чистить весь кеш (Очистка файлов кеша - Все). В случае многосайтовости очень неудобно удалять абсолютно весь кеш, без выбора отдельного сайта.

Добавьте, пожалуйста опцию выбора сайта, кеш которого надо удалить.
Рейтинг: 2.0129  
Новая
Предложил Валерий Чебан 03.07.2015 19:21:26

Кеш: добавить произвольную серриализацию

сделать возможным указывать свой режим сериализации, отличный от стандартного serialize() --> unserialize()


Еще по теме:

apc_store() - позволяет хранить переменную. Сама функция серриализует данные.
Можно подключить igbinary и указать apc.serializer=igbinary

при этом apc_store() будет использовать серриализатор igbinary (а не стандартный)

В коде главного модуля сейчас зашито:
$arAllVars = serialize($arAllVars);
apc_store($baseDirVersion."|".$initDirVersion."|".$filename, $arAllVars, intval($TTL));
Поэтому настройка apc.serializer=igbinary просто игнорируется.
Нужно это убрать.

К, примеру, memcached этого недостатка лишен, и можно указать memcached.serializer = igbinary, и в ядре не происходит предварительной серриализации массива стандартной функцией serialize()