Расширение: Доп информация (сколько памяти потребляется и т.д.)
Сам Redis по неизвестной мне причине не показывает некоторую, на мой взгляд, полезную информацию о себе, например, сколько сейчас памяти потребляется, сколько всего доступно и т. д.
Страница с данными есть, но таких данных там нет, а они иногда могут быть очень полезны. Поэтому я написал небольшое расширение, которое можно добавить в functions.php или как MU-плагин (в этом случае я предпочитаю этот способ):
<?php /** * Adds a node to the WordPress admin toolbar displaying Redis cache * diagnostics—showing memory usage and other info—only. * * @version: 1.1.2 */ /** * @see \Rhubarb\RedisCache\Plugin::render_admin_bar() */ add_action( 'admin_bar_menu', 'redis_cache_more_toolbar_info', 997 ); function redis_cache_more_toolbar_info( \WP_Admin_Bar $toolbar ): void { if( ! class_exists( \Rhubarb\RedisCache\Plugin::class ) ){ return; } if( defined( 'WP_REDIS_DISABLE_ADMINBAR' ) && WP_REDIS_DISABLE_ADMINBAR ){ return; } $plugin = \Rhubarb\RedisCache\Plugin::instance(); if( ! $plugin->current_user_can_manage_redis() || ! $plugin->get_redis_status() ){ return; } $redis = $GLOBALS['wp_object_cache']->redis_instance(); $fields = [ 'redis_mode' => '', // standalone - режим работы Redis (standalone — один сервер). 'config_file' => '', // /etc/redis/redis.conf - путь к конфигу Redis. 'io_threads_active' => '', // 0 - количество активных потоков ввода/вывода (0 значит однопоточный режим). 'connected_clients' => '', // 3 - количество подключенных клиентов. 'maxclients' => '', // 10000 - максимально разрешённое число клиентов. 'maxmemory_human' => '', // 4.00G - максимальное ограничение памяти Redis. 'total_system_memory_human' => '', // 15.25G - общий объём памяти сервера. 'used_memory_human' => '', // 344.48M - текущий расход памяти Redis (основной показатель). 'used_memory_rss_human' => '', // 380.08M - реальный расход памяти Redis в системе. 'used_memory_peak_human' => '', // 565.12M - пиковый расход памяти Redis за всё время работы. 'used_memory_peak_perc' => '', // 60.96% - текущий расход памяти в процентах от пика. 'used_memory_dataset' => '', // 295869416 - размер данных, хранящихся в Redis (без учёта служебной информации). 'used_memory_dataset_perc' => '', // 82.11% - процент полезных данных от всей потребляемой памяти. ]; $info = array_intersect_key( $redis->info(), $fields ); $info = array_merge( $fields, $info ); // sort $info['used_memory_dataset'] = size_format( $info['used_memory_dataset'] ); $cut_decimal = static fn( $val ) => preg_replace( '~(\d)\.\d+~', '$1', $val ); $text = strtr( '{USED_MEM} / {MAX_MEM} ({PERCENT})', [ '{USED_MEM}' => $cut_decimal( $info['used_memory_rss_human'] ), '{MAX_MEM}' => $cut_decimal( $info['maxmemory_human'] ), '{PERCENT}' => $cut_decimal( $info['used_memory_peak_perc'] ), ] ); $toolbar->add_node( [ 'parent' => 'redis-cache-info', 'id' => 'redis-cache-more-info-details', 'title' => $text, 'href' => network_admin_url( ( fn() => $this->page )->call( $plugin ) . '#diagnostics' ), 'meta' => [ 'title' => implode( "\n", array_map( static fn( $k, $v ) => "$k = $v", array_keys( $info ), array_values( $info ) ) ), ], ] ); }
Этот код добавляет дополнительный пунк в тулбар (админ бар) меню плагина Редис, отображая расширенную информацию о Redis-кэше.
Что делает этот код:
- Проверяет, доступен ли класс
\Rhubarb\RedisCache\Plugin
и активен ли Redis. - Получает данные о состоянии Redis, включая использование памяти, количество подключенных клиентов и другие параметры.
- Формирует строку с основными показателями (используемая память / максимальная память (процент)).
- Добавляет новый пункт в тулбар администратора. Также в атрибут title добавляется детальное описание.