Я использую Redis для кеширования объектов / страниц и phpRedis для очистки URL.
До вчерашнего дня мои ключи хранились в следующем формате:
set $key "nginx-cache:$scheme$request_method$host$request_uri";
из-за того, что я хотел разделить ключи кэширования для мобильных и настольных компьютеров, я добавил карту на свой веб-сервер (nginx) и еще одну переменную, в результате чего получилось следующее:
set $key "nginx-cache:$scheme$request_method$host$request_uri$ua_mobile";
Но теперь мои руки связаны с очисткой этих конкретных URL.
Я попытался изменить эти строки моего класса phpRedis с:
$prefix = $nginx_helper_admin->options['redis_prefix'];
$_url_purge_base = $prefix . $parse['scheme'] . 'GET' . $parse['host'] . $parse['path'];
$is_purged = $this->delete_single_key( $_url_purge_base );
до:
$prefix = $nginx_helper_admin->options['redis_prefix'];
$_url_purge_base = $prefix . $parse['scheme'] . 'GET' . $parse['host'] . $parse['path'] . $parse['uamobile'];
$is_purged = $this->delete_single_key( $_url_purge_base );
но это не работает.
Есть идеи, как включить $ ua_mobile в эти запросы на очистку?
PS: моя функция delete_single_key:
public function delete_single_key( $key ) {
try {
return $this->redis_object->del( $key );
} catch ( Exception $e ) {
$this->log( $e->getMessage(), 'ERROR' );
}
}