我将Redis用于对象/页面缓存,并将phpRedis用于清除URL。
直到昨天,我的密钥都使用以下格式存储:
set $key "nginx-cache:$scheme$request_method$host$request_uri";
由于我想分离移动/桌面缓存键,因此在我的webserver(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' );
}
}