Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
|
ubillingcache [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування |
ubillingcache [2023/06/16 15:39] (поточний) nightfly |
||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== Подсистема кэширования ====== | + | ====== Підсистема кешування ====== |
| - | Представляет из себя штатный уровень абстракции для задач требующих | + | Являє собою штатний рівень абстракції для задач, котрі вимагають кешування даних на певний час. Присутній |
| <code ini> | <code ini> | ||
| - | ; Устанавливает | + | ; Встановлює тип |
| - | ; files - в файлах, | + | ; files - у файлах, |
| - | ; memcached - использует Memcached для кэширования данных в оперативной памяти на основе хеш-таблиц | + | ; memcached - використовує Memcached для кешування даних в оперативній пам'яті на основі хеш-таблиць |
| - | ; redis - использует Redis как сетевое журналируемое хранилище данных типа " | + | ; redis - використовує Redis як мережеве журнальоване сховище даних типу " |
| - | ; fake - фэйковый кэш - считается, | + | ; fake - фейковий кеш - вважається, що він завжди порожній |
| UBCACHE_STORAGE=files | UBCACHE_STORAGE=files | ||
| - | ; Необязательные | + | ; Необов'язкові |
| ; | ; | ||
| ; | ; | ||
| ; | ; | ||
| ; | ; | ||
| - | ;Включает запись логирования работы кэша в exports/ | + | ;Вмикає запис логування роботи кешу в exports/ |
| ; | ; | ||
| </ | </ | ||
| - | ====== Пример использования ====== | + | ====== Приклад використання ====== |
| - | Вся работа | + | |
| + | Вся робота | ||
| <code php> | <code php> | ||
| - | $cache = new UbillingCache(); | + | $cache = new UbillingCache(); |
| - | $cacheTime=60; | + | $cacheTime=60; |
| $someData = $cache-> | $someData = $cache-> | ||
| return (web_AnalyticsPaymentsMonthGraph(' | return (web_AnalyticsPaymentsMonthGraph(' | ||
| }, $cacheTime); | }, $cacheTime); | ||
| - | //показываем результат | + | //відображаємо результат |
| show_window(__(' | show_window(__(' | ||
| </ | </ | ||
| - | Стоит заметить, | ||
| - | А что по скорости? | ||
| - | ====== ООП | + | Варто зауважити, що ви можете не перейматися серіалізацією своїх даних під час засовування в кеш. На виході |
| - | Для протаскивания свойств вашего объекта внутрь | + | ====== ООП або використання у своєму класі ====== |
| + | |||
| + | Для протягування властивостей вашого об'єкта всередину анонімної функції коллбека вам | ||
| <code php> | <code php> | ||
| | | ||
| $result = ''; | $result = ''; | ||
| - | $this-> | + | $this-> |
| - | // а именно | + | // а саме створюємо $this-> |
| - | $obj = $this; // а вот собственно и хак | + | $obj = $this; // а ось власне і хак |
| $result = $this-> | $result = $this-> | ||
| - | return ($obj-> | + | return ($obj-> |
| }, $this-> | }, $this-> | ||
| return ($result); | return ($result); | ||
| Рядок 52: | Рядок 53: | ||
| </ | </ | ||
| - | ====== Очистка | + | ====== Очищення |
| - | Хотя данные из кэша самостоятельно удаляются по прошествии времени $expiration | + | |
| + | Хоча дані з кеша самостійно видаляються після закінчення часу | ||
| <code php> | <code php> | ||
| $cache-> | $cache-> | ||
| </ | </ | ||
| - | ====== А если | + | ====== А якщо |
| - | Начиная с релиза 0.8.5 вы можете использовать это все просто на уровне set/get указывая время хранения в кэше. Да, в этом случае нам придется самим решать когда и как засовывать данные в кэш, в случае его устаревания. | + | |
| - | Как-то так: | + | Ви можете використовувати це все просто на рівні set/get, вказуючи час зберігання даних ключа в кеші. Так, у цьому разі нам доведеться самим вирішувати, |
| + | |||
| + | Якось так: | ||
| <code php> | <code php> | ||
| Рядок 69: | Рядок 73: | ||
| - | //пытаемся | + | //намагаємося отримати дані з кешу |
| $dataInCache=$cache-> | $dataInCache=$cache-> | ||
| if (!empty($dataInCache)) { | if (!empty($dataInCache)) { | ||
| - | //если чего-то получено - показываем это в окошке | + | //якщо щось отримано і воно |
| show_window(__(' | show_window(__(' | ||
| } else { | } else { | ||
| - | // | + | // |
| $cache-> | $cache-> | ||
| show_warning(__(' | show_warning(__(' | ||
| Рядок 81: | Рядок 85: | ||
| </ | </ | ||
| - | Следует | + | Слід також пам'ятати, що при прямій роботі за допомогою set/get рекомендується вказувати таймаут кешування в обох функціях. Оскільки для стораджів типу memcached |
| ====== Memcached ====== | ====== Memcached ====== | ||
| - | Вополне понятно, что для UBCACHE_STORAGE=memcached требуется | + | |
| + | Цілком зрозуміло, що для UBCACHE_STORAGE=memcached | ||
| / | / | ||
| - | <file ini> | + | <file ini rc.conf> |
| memcached_enable=" | memcached_enable=" | ||
| memcached_flags=" | memcached_flags=" | ||
| Рядок 99: | Рядок 103: | ||
| ====== Redis ====== | ====== Redis ====== | ||
| - | Если в вашу сборку пакетов устанавливаемых [[setupubinstaller|UBinstaller]] (в новых бинарниках уже должен быть) не входит Redis, вы можете доустановить его вручную. | ||
| - | Как проверить есть ли он? Да просто | + | Вмикаємо в /etc/rc.conf |
| - | <code> | + | <file ini rc.conf> |
| - | # cd / | + | |
| - | # make && make install | + | |
| - | # cd / | + | |
| - | # make && make install | + | |
| - | # apachectl restart | + | |
| - | # / | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | Включаем в /etc/rc.conf | + | |
| - | <code ini> | + | |
| redis_enable=" | redis_enable=" | ||
| - | </code> | + | </file> |
| - | с последующим запуском | + | з подальшим запуском |
| < | < | ||
| # service redis restart | # service redis restart | ||
| </ | </ | ||
| - | ====== Хочу особенное хранилище ====== | + | ====== Хочу особливе сховище ====== |
| - | Допустим, по какой-то причине, вам хочется в каком-то вашем, конкретном модуле использовать хранилище кэша отличающееся от указанного в опции UBCACHE_STORAGE. | + | Припустимо, з якоїсь |
| <code php> | <code php> | ||
| - | $this-> | + | $this-> |
| - | $this-> | + | $this-> |
| - | // а в конфиге для всей остальной системы у нас будет вообще | + | // а в конфігурації |
| </ | </ | ||