Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
WP Plugins
Redis Object Cache
Commits
58bfdb6e
Commit
58bfdb6e
authored
Feb 27, 2014
by
Erick Hitter
Browse files
Add tracking of cache hits and misses, and the attendant function that the Debug Bar plugin uses.
parent
5355b183
Changes
1
Hide whitespace changes
Inline
Side-by-side
object-cache.php
View file @
58bfdb6e
...
...
@@ -93,17 +93,6 @@ function wp_cache_get( $key, $group = '' ) {
return
$wp_object_cache
->
get
(
$key
,
$group
);
}
/**
* Get server pool statistics.
*
* @return array Array of server statistics, one entry per server.
*/
function
wp_cache_get_stats
()
{
global
$wp_object_cache
;
return
$wp_object_cache
->
stats
();
}
/**
* Increment a numeric item's value.
*
...
...
@@ -235,6 +224,20 @@ class WP_Object_Cache {
*/
public
$blog_prefix
=
''
;
/**
* Track how many requests were found in cache
*
* @var int
*/
public
$cache_hits
=
0
;
/**
* Track how may requests were not cached
*
* @var int
*/
public
$cache_misses
=
0
;
/**
* Instantiate the Redis class.
*
...
...
@@ -384,15 +387,19 @@ class WP_Object_Cache {
if
(
in_array
(
$group
,
$this
->
no_redis_groups
)
)
{
if
(
isset
(
$this
->
cache
[
$derived_key
]
)
)
{
$this
->
cache_hits
++
;
return
is_object
(
$this
->
cache
[
$derived_key
]
)
?
clone
$this
->
cache
[
$derived_key
]
:
$this
->
cache
[
$derived_key
];
}
elseif
(
in_array
(
$group
,
$this
->
no_redis_groups
)
)
{
}
else
{
$this
->
cache_misses
++
;
return
false
;
}
}
if
(
$this
->
redis
->
exists
(
$derived_key
)
)
{
$this
->
cache_hits
++
;
$value
=
$this
->
restore_value_from_redis
(
$this
->
redis
->
get
(
$derived_key
)
);
}
else
{
$this
->
cache_misses
;
return
false
;
}
...
...
@@ -431,8 +438,6 @@ class WP_Object_Cache {
$result
=
$this
->
redis
->
set
(
$derived_key
,
$this
->
prepare_value_for_redis
(
$value
)
);
}
$this
->
add_to_internal_cache
(
$derived_key
,
$value
);
return
$result
;
}
...
...
@@ -494,6 +499,26 @@ class WP_Object_Cache {
return
$result
;
}
/**
* Render data about current cache requests
*
* @return string
*/
public
function
stats
()
{
?>
<p>
<strong>
Cache Hits:
</strong>
<?php
echo
number_format_i18n
(
$this
->
cache_hits
);
?>
<br
/>
<strong>
Cache Misses:
</strong>
<?php
echo
number_format_i18n
(
$this
->
cache_misses
);
?>
<br
/>
</p>
<p>
</p>
<p><strong>
Caches Retrieved:
</strong></p>
<ul>
<li><em>
prefix:group:key - size in kilobytes
</em></li>
<?php
foreach
(
$this
->
cache
as
$group
=>
$cache
)
:
?>
<li>
<?php
echo
esc_html
(
$group
);
?>
-
<?php
echo
number_format_i18n
(
strlen
(
serialize
(
$cache
)
)
/
1024
,
2
);
?>
kb
</li>
<?php
endforeach
;
?>
</ul>
<?php
}
/**
* Builds a key for the cached object using the blog_id, key, and group values.
*
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment