Redis Object Cache - Version 2.2.0

Version Description

  • Added redis_cache_add_non_persistent_groups filter
  • Fixed wp_add_dashboard_widget parameters
  • Fixed WP_REDIS_SERVERS replication issue with Predis v2.0
  • Fixed WP_REDIS_CLUSTER string support
  • Fixed issue when MGET fails in get_multiple() call
  • Fixed several warnings in the event of pipeline failures
Download this release

Release Info

Developer tillkruess
Plugin Icon 128x128 Redis Object Cache
Version 2.2.0
Comparing to
See all releases

Code changes from version 2.1.6 to 2.2.0

includes/class-metrics.php CHANGED
@@ -257,7 +257,7 @@ class Metrics {
257
  global $wp_object_cache;
258
 
259
  if ( ! self::is_active() ) {
260
- return;
261
  }
262
 
263
  try {
@@ -267,6 +267,7 @@ class Metrics {
267
  } catch ( Exception $exception ) {
268
  // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
269
  error_log( $exception );
 
270
  }
271
  }
272
 
257
  global $wp_object_cache;
258
 
259
  if ( ! self::is_active() ) {
260
+ return 0;
261
  }
262
 
263
  try {
267
  } catch ( Exception $exception ) {
268
  // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
269
  error_log( $exception );
270
+ return 0;
271
  }
272
  }
273
 
includes/class-plugin.php CHANGED
@@ -45,7 +45,7 @@ class Plugin {
45
  /**
46
  * Plugin instance property
47
  *
48
- * @var Plugin
49
  */
50
  private static $instance;
51
 
@@ -208,6 +208,8 @@ class Plugin {
208
  'dashboard_rediscache',
209
  __( 'Redis Object Cache', 'redis-cache' ),
210
  [ $this, 'show_dashboard_widget' ],
 
 
211
  'normal',
212
  'high'
213
  );
@@ -281,7 +283,7 @@ class Plugin {
281
  return;
282
  }
283
 
284
- wp_enqueue_style( 'redis-cache', WP_REDIS_PLUGIN_DIR . '/assets/css/admin.css', null, WP_REDIS_VERSION );
285
  }
286
 
287
  /**
@@ -362,7 +364,7 @@ class Plugin {
362
  wp_enqueue_script(
363
  'redis-cache-charts',
364
  plugins_url( 'assets/js/apexcharts.min.js', WP_REDIS_FILE ),
365
- null,
366
  WP_REDIS_VERSION,
367
  true
368
  );
@@ -507,15 +509,15 @@ class Plugin {
507
  global $wp_object_cache;
508
 
509
  if ( defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED ) {
510
- return;
511
  }
512
 
513
  if ( ! $this->validate_object_cache_dropin() ) {
514
- return;
515
  }
516
 
517
  if ( ! method_exists( $wp_object_cache, 'redis_status' ) ) {
518
- return;
519
  }
520
 
521
  return $wp_object_cache->redis_status();
@@ -531,12 +533,14 @@ class Plugin {
531
  global $wp_object_cache;
532
 
533
  if ( defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED ) {
534
- return;
535
  }
536
 
537
- if ( $this->validate_object_cache_dropin() && method_exists( $wp_object_cache, 'redis_version' ) ) {
538
- return $wp_object_cache->redis_version();
539
  }
 
 
540
  }
541
 
542
  /**
@@ -551,9 +555,11 @@ class Plugin {
551
  return $wp_object_cache->diagnostics[ 'client' ];
552
  }
553
 
554
- if ( defined( 'WP_REDIS_CLIENT' ) ) {
555
- return WP_REDIS_CLIENT;
556
  }
 
 
557
  }
558
 
559
  /**
@@ -564,9 +570,11 @@ class Plugin {
564
  public function get_diagnostics() {
565
  global $wp_object_cache;
566
 
567
- if ( $this->validate_object_cache_dropin() && property_exists( $wp_object_cache, 'diagnostics' ) ) {
568
- return $wp_object_cache->diagnostics;
569
  }
 
 
570
  }
571
 
572
  /**
45
  /**
46
  * Plugin instance property
47
  *
48
+ * @var Plugin|null
49
  */
50
  private static $instance;
51
 
208
  'dashboard_rediscache',
209
  __( 'Redis Object Cache', 'redis-cache' ),
210
  [ $this, 'show_dashboard_widget' ],
211
+ null,
212
+ null,
213
  'normal',
214
  'high'
215
  );
283
  return;
284
  }
285
 
286
+ wp_enqueue_style( 'redis-cache', WP_REDIS_PLUGIN_DIR . '/assets/css/admin.css', [ ], WP_REDIS_VERSION );
287
  }
288
 
289
  /**
364
  wp_enqueue_script(
365
  'redis-cache-charts',
366
  plugins_url( 'assets/js/apexcharts.min.js', WP_REDIS_FILE ),
367
+ [ ],
368
  WP_REDIS_VERSION,
369
  true
370
  );
509
  global $wp_object_cache;
510
 
511
  if ( defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED ) {
512
+ return null;
513
  }
514
 
515
  if ( ! $this->validate_object_cache_dropin() ) {
516
+ return null;
517
  }
518
 
519
  if ( ! method_exists( $wp_object_cache, 'redis_status' ) ) {
520
+ return null;
521
  }
522
 
523
  return $wp_object_cache->redis_status();
533
  global $wp_object_cache;
534
 
535
  if ( defined( 'WP_REDIS_DISABLED' ) && WP_REDIS_DISABLED ) {
536
+ return null;
537
  }
538
 
539
+ if ( ! $this->validate_object_cache_dropin() || ! method_exists( $wp_object_cache, 'redis_version' ) ) {
540
+ return null;
541
  }
542
+
543
+ return $wp_object_cache->redis_version();
544
  }
545
 
546
  /**
555
  return $wp_object_cache->diagnostics[ 'client' ];
556
  }
557
 
558
+ if ( ! defined( 'WP_REDIS_CLIENT' ) ) {
559
+ return null;
560
  }
561
+
562
+ return WP_REDIS_CLIENT;
563
  }
564
 
565
  /**
570
  public function get_diagnostics() {
571
  global $wp_object_cache;
572
 
573
+ if ( ! $this->validate_object_cache_dropin() || ! property_exists( $wp_object_cache, 'diagnostics' ) ) {
574
+ return null;
575
  }
576
+
577
+ return $wp_object_cache->diagnostics;
578
  }
579
 
580
  /**
includes/diagnostics.php CHANGED
@@ -9,6 +9,7 @@ defined( '\\ABSPATH' ) || exit;
9
 
10
  global $wp_object_cache;
11
 
 
12
  $info = [];
13
  $filesystem = $roc->test_filesystem_writing();
14
  $dropin = $roc->validate_object_cache_dropin();
@@ -24,9 +25,7 @@ $info['Drop-in'] = $roc->object_cache_dropin_exists()
24
  $info['Disabled'] = $disabled ? 'Yes' : 'No';
25
 
26
  if ( $dropin && ! $disabled ) {
27
- $info[ 'Ping' ] = isset( $wp_object_cache->diagnostics[ 'ping' ] )
28
- ? $wp_object_cache->diagnostics[ 'ping' ]
29
- : false;
30
 
31
  try {
32
  $cache = new WP_Object_Cache( false );
9
 
10
  global $wp_object_cache;
11
 
12
+ /** @var \Rhubarb\RedisCache\Plugin $roc */
13
  $info = [];
14
  $filesystem = $roc->test_filesystem_writing();
15
  $dropin = $roc->validate_object_cache_dropin();
25
  $info['Disabled'] = $disabled ? 'Yes' : 'No';
26
 
27
  if ( $dropin && ! $disabled ) {
28
+ $info[ 'Ping' ] = $wp_object_cache->diagnostics['ping'] ?? false;
 
 
29
 
30
  try {
31
  $cache = new WP_Object_Cache( false );
includes/object-cache.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Redis Object Cache Drop-In
4
  * Plugin URI: https://wordpress.org/plugins/redis-cache/
5
  * Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
6
- * Version: 2.1.6
7
  * Author: Till Krüss
8
  * Author URI: https://objectcache.pro
9
  * License: GPLv3
@@ -428,9 +428,9 @@ class WP_Object_Cache {
428
  /**
429
  * Prefix used for non-global groups.
430
  *
431
- * @var string
432
  */
433
- public $blog_prefix = '';
434
 
435
  /**
436
  * Track how many requests were found in cache.
@@ -514,9 +514,11 @@ class WP_Object_Cache {
514
  }
515
 
516
  if ( defined( 'WP_REDIS_CLUSTER' ) ) {
517
- $connectionID = current( $this->build_cluster_connection_array() );
 
 
518
 
519
- $this->diagnostics[ 'ping' ] = ($client === 'predis')
520
  ? $this->redis->getClientFor( $connectionID )->ping()
521
  : $this->redis->ping( $connectionID );
522
  } else {
@@ -637,7 +639,7 @@ class WP_Object_Cache {
637
  $this->diagnostics[ 'shards' ] = WP_REDIS_SHARDS;
638
  } elseif ( defined( 'WP_REDIS_CLUSTER' ) ) {
639
  if ( is_string( WP_REDIS_CLUSTER ) ) {
640
- $this->redis = new RedisCluster( WP_REDIS_CLUSTER );
641
  } else {
642
  $args = [
643
  'cluster' => $this->build_cluster_connection_array(),
@@ -651,9 +653,8 @@ class WP_Object_Cache {
651
  }
652
 
653
  $this->redis = new RedisCluster( null, ...array_values( $args ) );
 
654
  }
655
-
656
- $this->diagnostics += $args;
657
  } else {
658
  $this->redis = new Redis();
659
 
@@ -745,7 +746,7 @@ class WP_Object_Cache {
745
 
746
  if ( strcasecmp( 'unix', $parameters['scheme'] ) === 0 ) {
747
  $args['host'] = $parameters['path'];
748
- $args['port'] = null;
749
  }
750
 
751
  $args['read_timeout'] = $parameters['read_timeout'];
@@ -817,7 +818,7 @@ class WP_Object_Cache {
817
  } elseif ( defined( 'WP_REDIS_SERVERS' ) ) {
818
  $servers = WP_REDIS_SERVERS;
819
  $parameters['servers'] = $servers;
820
- $options['replication'] = true;
821
  } elseif ( defined( 'WP_REDIS_CLUSTER' ) ) {
822
  $servers = $this->build_cluster_connection_array();
823
  $parameters['cluster'] = $servers;
@@ -956,7 +957,7 @@ class WP_Object_Cache {
956
  $params = array_filter( $_client );
957
 
958
  if ( $params ) {
959
- $connection_string .= '?' . http_build_query( $params, null, '&' );
960
  }
961
 
962
  $clients[ $index ] = $connection_string;
@@ -968,7 +969,7 @@ class WP_Object_Cache {
968
  'host' => $parameters['scheme'] === 'unix' ? $parameters['path'] : $parameters['host'],
969
  'port' => $parameters['port'],
970
  'timeout' => $parameters['timeout'],
971
- 'persistent' => null,
972
  'database' => $parameters['database'],
973
  'password' => isset( $parameters['password'] ) ? $parameters['password'] : null,
974
  ];
@@ -1056,7 +1057,9 @@ class WP_Object_Cache {
1056
  }
1057
 
1058
  if ( defined( 'WP_REDIS_CLUSTER' ) ) {
1059
- $connectionID = current( $this->build_cluster_connection_array() );
 
 
1060
 
1061
  $info = $this->determine_client() === 'predis'
1062
  ? $this->redis->getClientFor( $connectionID )->info()
@@ -1209,7 +1212,7 @@ class WP_Object_Cache {
1209
 
1210
  $results = array_map( function ( $response ) {
1211
  return (bool) $this->parse_redis_response( $response );
1212
- }, $tx->{$method}() );
1213
 
1214
  $results = array_combine( $keys, $results );
1215
 
@@ -1337,7 +1340,7 @@ class WP_Object_Cache {
1337
  }
1338
  }
1339
 
1340
- $exists = isset( $this->cache[ $derived_key ] );
1341
 
1342
  if ( (bool) $add === $exists ) {
1343
  return false;
@@ -1365,7 +1368,7 @@ class WP_Object_Cache {
1365
 
1366
  $derived_key = $this->fast_build_key( $san_key, $san_group );
1367
 
1368
- if ( isset( $this->cache[ $derived_key ] ) ) {
1369
  unset( $this->cache[ $derived_key ] );
1370
  $result = true;
1371
  }
@@ -1454,7 +1457,7 @@ class WP_Object_Cache {
1454
 
1455
  $results = array_map( function ( $response ) {
1456
  return (bool) $this->parse_redis_response( $response );
1457
- }, $tx->{$method}() );
1458
 
1459
  $execute_time = microtime( true ) - $start_time;
1460
  } catch ( Exception $exception ) {
@@ -1737,7 +1740,7 @@ LUA;
1737
  $san_group = $this->sanitize_key_part( $group );
1738
  $derived_key = $this->fast_build_key( $san_key, $san_group );
1739
 
1740
- if ( isset( $this->cache[ $derived_key ] ) && ! $force ) {
1741
  $found = true;
1742
  $this->cache_hits++;
1743
  $value = $this->get_from_internal_cache( $derived_key );
@@ -1817,7 +1820,7 @@ LUA;
1817
  * @param string $group Optional. Where the cache contents are grouped. Default empty.
1818
  * @param bool $force Optional. Whether to force an update of the local cache
1819
  * from the persistent cache. Default false.
1820
- * @return array Array of values organized into groups.
1821
  */
1822
  public function get_multiple( $keys, $group = 'default', $force = false ) {
1823
  if ( ! is_array( $keys ) ) {
@@ -1867,7 +1870,7 @@ LUA;
1867
  $remaining_keys = array_filter(
1868
  $keys,
1869
  function ( $key ) use ( $cache ) {
1870
- return ! isset( $cache[ $key ] );
1871
  }
1872
  );
1873
 
@@ -1876,15 +1879,16 @@ LUA;
1876
  }
1877
 
1878
  $start_time = microtime( true );
 
1879
 
1880
- try {
1881
- $remaining_ids = array_map(
1882
- function ( $key ) use ( $derived_keys ) {
1883
- return $derived_keys[ $key ];
1884
- },
1885
- $remaining_keys
1886
- );
1887
 
 
1888
  $results = array_combine(
1889
  $remaining_keys,
1890
  $this->redis->mget( $remaining_ids )
@@ -1893,7 +1897,10 @@ LUA;
1893
  } catch ( Exception $exception ) {
1894
  $this->handle_exception( $exception );
1895
 
1896
- $cache = array_fill( 0, count( $derived_keys ) - 1, false );
 
 
 
1897
  }
1898
 
1899
  $execute_time = microtime( true ) - $start_time;
@@ -1917,8 +1924,8 @@ LUA;
1917
  * Fires on every cache get multiple request
1918
  *
1919
  * @since 2.0.6
1920
- * @param mixed $value Value of the cache entry.
1921
- * @param string $key The cache key.
1922
  * @param string $group The group value appended to the $key.
1923
  * @param bool $force Whether a forced refetch has taken place rather than relying on the local cache.
1924
  * @param float $execute_time Execution time for the request in seconds.
@@ -2099,7 +2106,7 @@ LUA;
2099
 
2100
  $results = array_map( function ( $response ) {
2101
  return (bool) $this->parse_redis_response( $response );
2102
- }, $tx->{$method}() );
2103
 
2104
  $results = array_combine( $keys, $results );
2105
 
@@ -2450,7 +2457,7 @@ LUA;
2450
  * @return bool|mixed Value on success; false on failure.
2451
  */
2452
  public function get_from_internal_cache( $derived_key ) {
2453
- if ( ! isset( $this->cache[ $derived_key ] ) ) {
2454
  return false;
2455
  }
2456
 
@@ -2472,7 +2479,7 @@ LUA;
2472
  return false;
2473
  }
2474
 
2475
- $this->blog_prefix = $_blog_id;
2476
 
2477
  return true;
2478
  }
@@ -2500,7 +2507,13 @@ LUA;
2500
  * @param array $groups List of groups that are to be ignored.
2501
  */
2502
  public function add_non_persistent_groups( $groups ) {
2503
- $groups = (array) $groups;
 
 
 
 
 
 
2504
 
2505
  $this->ignored_groups = array_unique( array_merge( $this->ignored_groups, $groups ) );
2506
  $this->cache_group_types();
3
  * Plugin Name: Redis Object Cache Drop-In
4
  * Plugin URI: https://wordpress.org/plugins/redis-cache/
5
  * Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
6
+ * Version: 2.2.0
7
  * Author: Till Krüss
8
  * Author URI: https://objectcache.pro
9
  * License: GPLv3
428
  /**
429
  * Prefix used for non-global groups.
430
  *
431
+ * @var int
432
  */
433
+ public $blog_prefix = 0;
434
 
435
  /**
436
  * Track how many requests were found in cache.
514
  }
515
 
516
  if ( defined( 'WP_REDIS_CLUSTER' ) ) {
517
+ $connectionID = is_string( WP_REDIS_CLUSTER )
518
+ ? WP_REDIS_CLUSTER
519
+ : current( $this->build_cluster_connection_array() );
520
 
521
+ $this->diagnostics[ 'ping' ] = $client === 'predis'
522
  ? $this->redis->getClientFor( $connectionID )->ping()
523
  : $this->redis->ping( $connectionID );
524
  } else {
639
  $this->diagnostics[ 'shards' ] = WP_REDIS_SHARDS;
640
  } elseif ( defined( 'WP_REDIS_CLUSTER' ) ) {
641
  if ( is_string( WP_REDIS_CLUSTER ) ) {
642
+ $this->redis = new RedisCluster( WP_REDIS_CLUSTER );
643
  } else {
644
  $args = [
645
  'cluster' => $this->build_cluster_connection_array(),
653
  }
654
 
655
  $this->redis = new RedisCluster( null, ...array_values( $args ) );
656
+ $this->diagnostics += $args;
657
  }
 
 
658
  } else {
659
  $this->redis = new Redis();
660
 
746
 
747
  if ( strcasecmp( 'unix', $parameters['scheme'] ) === 0 ) {
748
  $args['host'] = $parameters['path'];
749
+ $args['port'] = -1;
750
  }
751
 
752
  $args['read_timeout'] = $parameters['read_timeout'];
818
  } elseif ( defined( 'WP_REDIS_SERVERS' ) ) {
819
  $servers = WP_REDIS_SERVERS;
820
  $parameters['servers'] = $servers;
821
+ $options['replication'] = 'predis';
822
  } elseif ( defined( 'WP_REDIS_CLUSTER' ) ) {
823
  $servers = $this->build_cluster_connection_array();
824
  $parameters['cluster'] = $servers;
957
  $params = array_filter( $_client );
958
 
959
  if ( $params ) {
960
+ $connection_string .= '?' . http_build_query( $params, '', '&' );
961
  }
962
 
963
  $clients[ $index ] = $connection_string;
969
  'host' => $parameters['scheme'] === 'unix' ? $parameters['path'] : $parameters['host'],
970
  'port' => $parameters['port'],
971
  'timeout' => $parameters['timeout'],
972
+ 'persistent' => '',
973
  'database' => $parameters['database'],
974
  'password' => isset( $parameters['password'] ) ? $parameters['password'] : null,
975
  ];
1057
  }
1058
 
1059
  if ( defined( 'WP_REDIS_CLUSTER' ) ) {
1060
+ $connectionID = is_string( WP_REDIS_CLUSTER )
1061
+ ? 'SERVER'
1062
+ : current( $this->build_cluster_connection_array() );
1063
 
1064
  $info = $this->determine_client() === 'predis'
1065
  ? $this->redis->getClientFor( $connectionID )->info()
1212
 
1213
  $results = array_map( function ( $response ) {
1214
  return (bool) $this->parse_redis_response( $response );
1215
+ }, $tx->{$method}() ?? [] );
1216
 
1217
  $results = array_combine( $keys, $results );
1218
 
1340
  }
1341
  }
1342
 
1343
+ $exists = array_key_exists( $derived_key, $this->cache );
1344
 
1345
  if ( (bool) $add === $exists ) {
1346
  return false;
1368
 
1369
  $derived_key = $this->fast_build_key( $san_key, $san_group );
1370
 
1371
+ if ( array_key_exists( $derived_key, $this->cache ) ) {
1372
  unset( $this->cache[ $derived_key ] );
1373
  $result = true;
1374
  }
1457
 
1458
  $results = array_map( function ( $response ) {
1459
  return (bool) $this->parse_redis_response( $response );
1460
+ }, $tx->{$method}() ?? [] );
1461
 
1462
  $execute_time = microtime( true ) - $start_time;
1463
  } catch ( Exception $exception ) {
1740
  $san_group = $this->sanitize_key_part( $group );
1741
  $derived_key = $this->fast_build_key( $san_key, $san_group );
1742
 
1743
+ if ( array_key_exists( $derived_key, $this->cache ) && ! $force ) {
1744
  $found = true;
1745
  $this->cache_hits++;
1746
  $value = $this->get_from_internal_cache( $derived_key );
1820
  * @param string $group Optional. Where the cache contents are grouped. Default empty.
1821
  * @param bool $force Optional. Whether to force an update of the local cache
1822
  * from the persistent cache. Default false.
1823
+ * @return array|false Array of values organized into groups.
1824
  */
1825
  public function get_multiple( $keys, $group = 'default', $force = false ) {
1826
  if ( ! is_array( $keys ) ) {
1870
  $remaining_keys = array_filter(
1871
  $keys,
1872
  function ( $key ) use ( $cache ) {
1873
+ return ! array_key_exists( $key, $cache );
1874
  }
1875
  );
1876
 
1879
  }
1880
 
1881
  $start_time = microtime( true );
1882
+ $results = [];
1883
 
1884
+ $remaining_ids = array_map(
1885
+ function ( $key ) use ( $derived_keys ) {
1886
+ return $derived_keys[ $key ];
1887
+ },
1888
+ $remaining_keys
1889
+ );
 
1890
 
1891
+ try {
1892
  $results = array_combine(
1893
  $remaining_keys,
1894
  $this->redis->mget( $remaining_ids )
1897
  } catch ( Exception $exception ) {
1898
  $this->handle_exception( $exception );
1899
 
1900
+ $results = array_combine(
1901
+ $remaining_keys,
1902
+ array_fill( 0, count( $remaining_ids ), false )
1903
+ );
1904
  }
1905
 
1906
  $execute_time = microtime( true ) - $start_time;
1924
  * Fires on every cache get multiple request
1925
  *
1926
  * @since 2.0.6
1927
+ * @param array $keys Array of keys under which the cache contents are stored.
1928
+ * @param array $cache Cache items.
1929
  * @param string $group The group value appended to the $key.
1930
  * @param bool $force Whether a forced refetch has taken place rather than relying on the local cache.
1931
  * @param float $execute_time Execution time for the request in seconds.
2106
 
2107
  $results = array_map( function ( $response ) {
2108
  return (bool) $this->parse_redis_response( $response );
2109
+ }, $tx->{$method}() ?? [] );
2110
 
2111
  $results = array_combine( $keys, $results );
2112
 
2457
  * @return bool|mixed Value on success; false on failure.
2458
  */
2459
  public function get_from_internal_cache( $derived_key ) {
2460
+ if ( ! array_key_exists( $derived_key, $this->cache ) ) {
2461
  return false;
2462
  }
2463
 
2479
  return false;
2480
  }
2481
 
2482
+ $this->blog_prefix = (int) $_blog_id;
2483
 
2484
  return true;
2485
  }
2507
  * @param array $groups List of groups that are to be ignored.
2508
  */
2509
  public function add_non_persistent_groups( $groups ) {
2510
+ /**
2511
+ * Filters list of groups to be added to {@see self::$ignored_groups}
2512
+ *
2513
+ * @since 2.1.7
2514
+ * @param string[] $groups List of groups to be ignored.
2515
+ */
2516
+ $groups = apply_filters( 'redis_cache_add_non_persistent_groups', (array) $groups );
2517
 
2518
  $this->ignored_groups = array_unique( array_merge( $this->ignored_groups, $groups ) );
2519
  $this->cache_group_types();
includes/ui/class-tab.php CHANGED
@@ -179,8 +179,8 @@ class Tab {
179
  * Filters the tab's nav id
180
  *
181
  * @since 2.0.12
182
- * @param string $nav_id The id attribute of the current tab's nav element.
183
- * @param Tab $this The current tab.
184
  */
185
  return apply_filters( 'roc_tab_nav_id', $nav_id, $this );
186
  }
@@ -207,8 +207,8 @@ class Tab {
207
  * Filters the current tab's nav element css classes
208
  *
209
  * @since 2.0.12
210
- * @param array $classes Array of css classes.
211
- * @param Tab $this The current tab.
212
  */
213
  return implode( ' ', apply_filters( 'roc_tab_nav_classes', $classes, $this ) );
214
  }
@@ -225,8 +225,8 @@ class Tab {
225
  * Filters the tab's id
226
  *
227
  * @since 2.0.12
228
- * @param string $tab_id The id attribute of the current tab element.
229
- * @param Tab $this The current tab.
230
  */
231
  return apply_filters( 'roc_tab_id', $tab_id, $this );
232
  }
@@ -250,8 +250,8 @@ class Tab {
250
  * Filters the current tab's css classes
251
  *
252
  * @since 2.0.12
253
- * @param array $classes Array of css classes.
254
- * @param Tab $this The current tab.
255
  */
256
  return implode( ' ', apply_filters( 'roc_tab_classes', $classes, $this ) );
257
  }
179
  * Filters the tab's nav id
180
  *
181
  * @since 2.0.12
182
+ * @param string $nav_id The id attribute of the current tab's nav element.
183
+ * @param Tab $instance The current tab.
184
  */
185
  return apply_filters( 'roc_tab_nav_id', $nav_id, $this );
186
  }
207
  * Filters the current tab's nav element css classes
208
  *
209
  * @since 2.0.12
210
+ * @param array $classes Array of css classes.
211
+ * @param Tab $instance The current tab.
212
  */
213
  return implode( ' ', apply_filters( 'roc_tab_nav_classes', $classes, $this ) );
214
  }
225
  * Filters the tab's id
226
  *
227
  * @since 2.0.12
228
+ * @param string $tab_id The id attribute of the current tab element.
229
+ * @param Tab $instance The current tab.
230
  */
231
  return apply_filters( 'roc_tab_id', $tab_id, $this );
232
  }
250
  * Filters the current tab's css classes
251
  *
252
  * @since 2.0.12
253
+ * @param array $classes Array of css classes.
254
+ * @param Tab $instance The current tab.
255
  */
256
  return implode( ' ', apply_filters( 'roc_tab_classes', $classes, $this ) );
257
  }
includes/ui/tabs/overview.php CHANGED
@@ -7,6 +7,7 @@
7
 
8
  defined( '\\ABSPATH' ) || exit;
9
 
 
10
  $status = $roc->get_redis_status();
11
  $redis_client = $roc->get_redis_client_name();
12
  $redis_prefix = $roc->get_redis_prefix();
7
 
8
  defined( '\\ABSPATH' ) || exit;
9
 
10
+ /** @var \Rhubarb\RedisCache\Plugin $roc */
11
  $status = $roc->get_redis_status();
12
  $redis_client = $roc->get_redis_client_name();
13
  $redis_prefix = $roc->get_redis_prefix();
languages/redis-cache.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the GPLv3.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Redis Object Cache 2.1.6\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/redis-cache\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-07-20T20:19:16+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: redis-cache\n"
@@ -42,7 +42,7 @@ msgid "Redis"
42
  msgstr ""
43
 
44
  #: includes/class-plugin.php:178
45
- #: includes/ui/tabs/overview.php:21
46
  msgid "Overview"
47
  msgstr ""
48
 
@@ -54,174 +54,174 @@ msgstr ""
54
  msgid "Diagnostics"
55
  msgstr ""
56
 
57
- #: includes/class-plugin.php:235
58
  #: includes/ui/widget.php:36
59
  msgid "Settings"
60
  msgstr ""
61
 
62
- #: includes/class-plugin.php:256
63
  msgctxt "verb"
64
  msgid "Upgrade to Pro"
65
  msgstr ""
66
 
67
- #: includes/class-plugin.php:330
68
  #: includes/ui/tabs/metrics.php:17
69
  #: includes/ui/widget.php:16
70
  msgid "Time"
71
  msgstr ""
72
 
73
- #: includes/class-plugin.php:331
74
  #: includes/ui/tabs/metrics.php:22
75
  #: includes/ui/widget.php:21
76
  msgid "Bytes"
77
  msgstr ""
78
 
79
- #: includes/class-plugin.php:332
80
  #: includes/ui/tabs/metrics.php:27
81
  #: includes/ui/widget.php:26
82
  msgid "Ratio"
83
  msgstr ""
84
 
85
- #: includes/class-plugin.php:333
86
  #: includes/ui/tabs/metrics.php:32
87
  #: includes/ui/widget.php:31
88
  msgid "Calls"
89
  msgstr ""
90
 
91
- #: includes/class-plugin.php:334
92
  msgid "Not enough data collected, yet."
93
  msgstr ""
94
 
95
- #: includes/class-plugin.php:335
96
  msgid "Enable object cache to collect data."
97
  msgstr ""
98
 
99
- #: includes/class-plugin.php:481
100
  #: includes/class-qm-collector.php:66
101
  msgid "Disabled"
102
  msgstr ""
103
 
104
- #: includes/class-plugin.php:485
105
  msgid "Drop-in not installed"
106
  msgstr ""
107
 
108
- #: includes/class-plugin.php:489
109
  msgid "Drop-in is invalid"
110
  msgstr ""
111
 
112
- #: includes/class-plugin.php:494
113
  msgid "Connected"
114
  msgstr ""
115
 
116
- #: includes/class-plugin.php:495
117
  msgid "Not connected"
118
  msgstr ""
119
 
120
- #: includes/class-plugin.php:498
121
- #: includes/ui/tabs/overview.php:269
122
  msgid "Unknown"
123
  msgstr ""
124
 
125
  #. translators: %s = Action link to update the drop-in.
126
- #: includes/class-plugin.php:616
127
  msgid "The Redis object cache drop-in is outdated. Please <a href=\"%s\">update the drop-in</a>."
128
  msgstr ""
129
 
130
  #. translators: %s = Link to settings page.
131
- #: includes/class-plugin.php:623
132
  msgid "A foreign object cache drop-in was found. To use Redis for object caching, please <a href=\"%s\">enable the drop-in</a>."
133
  msgstr ""
134
 
135
- #: includes/class-plugin.php:661
136
  msgid "Object cache flushed."
137
  msgstr ""
138
 
139
- #: includes/class-plugin.php:667
140
  msgid "Object cache could not be flushed."
141
  msgstr ""
142
 
143
- #: includes/class-plugin.php:695
144
  #: includes/cli/class-commands.php:74
145
  msgid "Object cache enabled."
146
  msgstr ""
147
 
148
- #: includes/class-plugin.php:701
149
  #: includes/cli/class-commands.php:76
150
  msgid "Object cache could not be enabled."
151
  msgstr ""
152
 
153
- #: includes/class-plugin.php:721
154
  #: includes/cli/class-commands.php:113
155
  msgid "Object cache disabled."
156
  msgstr ""
157
 
158
- #: includes/class-plugin.php:727
159
  #: includes/cli/class-commands.php:115
160
  msgid "Object cache could not be disabled."
161
  msgstr ""
162
 
163
- #: includes/class-plugin.php:752
164
  #: includes/cli/class-commands.php:147
165
  msgid "Updated object cache drop-in and enabled Redis object cache."
166
  msgstr ""
167
 
168
- #: includes/class-plugin.php:758
169
  #: includes/cli/class-commands.php:149
170
  msgid "Object cache drop-in could not be updated."
171
  msgstr ""
172
 
173
- #: includes/class-plugin.php:825
174
  msgid "Object Cache Pro!"
175
  msgstr ""
176
 
177
  #. translators: %s = Link to the plugin setting screen.
178
- #: includes/class-plugin.php:828
179
  msgid "A <u>business class</u> object cache backend. Truly reliable, highly-optimized and fully customizable, with a <u>dedicated engineer</u> when you most need it. <a href=\"%s\">Learn more »</a>"
180
  msgstr ""
181
 
182
- #: includes/class-plugin.php:865
183
  msgid "Object Cache Pro + WooCommerce = ❤️"
184
  msgstr ""
185
 
186
  #. translators: %s = Link to the plugin's settings screen.
187
- #: includes/class-plugin.php:868
188
  msgid "Object Cache Pro is a <u>business class</u> object cache that’s highly-optimized for WooCommerce to provide true reliability, peace of mind and faster load times for your store. <a style=\"color: #bb77ae;\" href=\"%s\">Learn more »</a>"
189
  msgstr ""
190
 
191
  #. translators: %1$d = number of objects. %2$s = human-readable size of cache. %3$s = name of the used client.
192
- #: includes/class-plugin.php:934
193
  msgid "Retrieved %1$d objects (%2$s) from Redis using %3$s."
194
  msgstr ""
195
 
196
- #: includes/class-plugin.php:991
197
  msgid "Could not initialize filesystem."
198
  msgstr ""
199
 
200
- #: includes/class-plugin.php:998
201
  msgid "Object cache file doesn’t exist."
202
  msgstr ""
203
 
204
- #: includes/class-plugin.php:1003
205
  msgid "Test file exists, but couldn’t be deleted."
206
  msgstr ""
207
 
208
- #: includes/class-plugin.php:1008
209
  msgid "Content directory is not writable."
210
  msgstr ""
211
 
212
- #: includes/class-plugin.php:1012
213
  msgid "Failed to copy test file."
214
  msgstr ""
215
 
216
- #: includes/class-plugin.php:1016
217
  msgid "Copied test file doesn’t exist."
218
  msgstr ""
219
 
220
- #: includes/class-plugin.php:1022
221
  msgid "Couldn’t verify test file contents."
222
  msgstr ""
223
 
224
- #: includes/class-plugin.php:1026
225
  msgid "Copied test file couldn’t be deleted."
226
  msgstr ""
227
 
@@ -230,7 +230,7 @@ msgid "Object Cache"
230
  msgstr ""
231
 
232
  #: includes/class-qm-collector.php:66
233
- #: includes/ui/tabs/overview.php:91
234
  msgid "Yes"
235
  msgstr ""
236
 
@@ -394,133 +394,133 @@ msgstr ""
394
  msgid "The total amount of commands sent to Redis."
395
  msgstr ""
396
 
397
- #: includes/ui/tabs/overview.php:27
398
  msgid "Status:"
399
  msgstr ""
400
 
401
- #: includes/ui/tabs/overview.php:44
402
  msgid "Drop-in:"
403
  msgstr ""
404
 
405
- #: includes/ui/tabs/overview.php:49
406
  msgid "Not installed"
407
  msgstr ""
408
 
409
- #: includes/ui/tabs/overview.php:54
410
  msgid "Outdated"
411
  msgstr ""
412
 
413
- #: includes/ui/tabs/overview.php:59
414
  msgid "Valid"
415
  msgstr ""
416
 
417
- #: includes/ui/tabs/overview.php:64
418
  msgid "Invalid"
419
  msgstr ""
420
 
421
- #: includes/ui/tabs/overview.php:71
422
  msgid "Filesystem:"
423
  msgstr ""
424
 
425
- #: includes/ui/tabs/overview.php:76
426
  msgid "Not writeable"
427
  msgstr ""
428
 
429
- #: includes/ui/tabs/overview.php:81
430
  msgid "Writeable"
431
  msgstr ""
432
 
433
- #: includes/ui/tabs/overview.php:89
434
  msgid "Disabled:"
435
  msgstr ""
436
 
437
- #: includes/ui/tabs/overview.php:98
438
  msgid "Key Prefix:"
439
  msgstr ""
440
 
441
- #: includes/ui/tabs/overview.php:107
442
  msgid "Max. TTL:"
443
  msgstr ""
444
 
445
- #: includes/ui/tabs/overview.php:113
446
  msgid "This doesn’t appear to be a valid number."
447
  msgstr ""
448
 
449
- #: includes/ui/tabs/overview.php:125
450
  msgid "Connection"
451
  msgstr ""
452
 
453
- #: includes/ui/tabs/overview.php:132
454
  msgid "Client:"
455
  msgstr ""
456
 
457
- #: includes/ui/tabs/overview.php:141
458
  msgid "Host:"
459
  msgstr ""
460
 
461
- #: includes/ui/tabs/overview.php:148
462
  msgid "Cluster:"
463
  msgstr ""
464
 
465
- #: includes/ui/tabs/overview.php:161
466
  msgid "Shards:"
467
  msgstr ""
468
 
469
- #: includes/ui/tabs/overview.php:174
470
  msgid "Servers:"
471
  msgstr ""
472
 
473
- #: includes/ui/tabs/overview.php:187
474
  msgid "Port:"
475
  msgstr ""
476
 
477
- #: includes/ui/tabs/overview.php:194
478
  msgid "Username:"
479
  msgstr ""
480
 
481
- #: includes/ui/tabs/overview.php:201
482
  msgid "Password:"
483
  msgstr ""
484
 
485
- #: includes/ui/tabs/overview.php:210
486
  msgid "Database:"
487
  msgstr ""
488
 
489
- #: includes/ui/tabs/overview.php:217
490
  msgid "Connection Timeout:"
491
  msgstr ""
492
 
493
  #. translators: %s = Redis connection/read timeout in seconds.
494
- #: includes/ui/tabs/overview.php:223
495
- #: includes/ui/tabs/overview.php:240
496
  msgid "%ss"
497
  msgstr ""
498
 
499
- #: includes/ui/tabs/overview.php:234
500
  msgid "Read Timeout:"
501
  msgstr ""
502
 
503
- #: includes/ui/tabs/overview.php:251
504
  msgid "Retry Interval:"
505
  msgstr ""
506
 
507
  #. translators: %s = Redis retry interval in milliseconds.
508
- #: includes/ui/tabs/overview.php:257
509
  msgid "%sms"
510
  msgstr ""
511
 
512
- #: includes/ui/tabs/overview.php:268
513
  msgid "Redis Version:"
514
  msgstr ""
515
 
516
- #: includes/ui/tabs/overview.php:281
517
  msgid "Flush Cache"
518
  msgstr ""
519
 
520
- #: includes/ui/tabs/overview.php:287
521
  msgid "Disable Object Cache"
522
  msgstr ""
523
 
524
- #: includes/ui/tabs/overview.php:291
525
  msgid "Enable Object Cache"
526
  msgstr ""
2
  # This file is distributed under the GPLv3.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Redis Object Cache 2.2.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/redis-cache\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-08-26T19:11:13+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: redis-cache\n"
42
  msgstr ""
43
 
44
  #: includes/class-plugin.php:178
45
+ #: includes/ui/tabs/overview.php:22
46
  msgid "Overview"
47
  msgstr ""
48
 
54
  msgid "Diagnostics"
55
  msgstr ""
56
 
57
+ #: includes/class-plugin.php:237
58
  #: includes/ui/widget.php:36
59
  msgid "Settings"
60
  msgstr ""
61
 
62
+ #: includes/class-plugin.php:258
63
  msgctxt "verb"
64
  msgid "Upgrade to Pro"
65
  msgstr ""
66
 
67
+ #: includes/class-plugin.php:332
68
  #: includes/ui/tabs/metrics.php:17
69
  #: includes/ui/widget.php:16
70
  msgid "Time"
71
  msgstr ""
72
 
73
+ #: includes/class-plugin.php:333
74
  #: includes/ui/tabs/metrics.php:22
75
  #: includes/ui/widget.php:21
76
  msgid "Bytes"
77
  msgstr ""
78
 
79
+ #: includes/class-plugin.php:334
80
  #: includes/ui/tabs/metrics.php:27
81
  #: includes/ui/widget.php:26
82
  msgid "Ratio"
83
  msgstr ""
84
 
85
+ #: includes/class-plugin.php:335
86
  #: includes/ui/tabs/metrics.php:32
87
  #: includes/ui/widget.php:31
88
  msgid "Calls"
89
  msgstr ""
90
 
91
+ #: includes/class-plugin.php:336
92
  msgid "Not enough data collected, yet."
93
  msgstr ""
94
 
95
+ #: includes/class-plugin.php:337
96
  msgid "Enable object cache to collect data."
97
  msgstr ""
98
 
99
+ #: includes/class-plugin.php:483
100
  #: includes/class-qm-collector.php:66
101
  msgid "Disabled"
102
  msgstr ""
103
 
104
+ #: includes/class-plugin.php:487
105
  msgid "Drop-in not installed"
106
  msgstr ""
107
 
108
+ #: includes/class-plugin.php:491
109
  msgid "Drop-in is invalid"
110
  msgstr ""
111
 
112
+ #: includes/class-plugin.php:496
113
  msgid "Connected"
114
  msgstr ""
115
 
116
+ #: includes/class-plugin.php:497
117
  msgid "Not connected"
118
  msgstr ""
119
 
120
+ #: includes/class-plugin.php:500
121
+ #: includes/ui/tabs/overview.php:270
122
  msgid "Unknown"
123
  msgstr ""
124
 
125
  #. translators: %s = Action link to update the drop-in.
126
+ #: includes/class-plugin.php:624
127
  msgid "The Redis object cache drop-in is outdated. Please <a href=\"%s\">update the drop-in</a>."
128
  msgstr ""
129
 
130
  #. translators: %s = Link to settings page.
131
+ #: includes/class-plugin.php:631
132
  msgid "A foreign object cache drop-in was found. To use Redis for object caching, please <a href=\"%s\">enable the drop-in</a>."
133
  msgstr ""
134
 
135
+ #: includes/class-plugin.php:669
136
  msgid "Object cache flushed."
137
  msgstr ""
138
 
139
+ #: includes/class-plugin.php:675
140
  msgid "Object cache could not be flushed."
141
  msgstr ""
142
 
143
+ #: includes/class-plugin.php:703
144
  #: includes/cli/class-commands.php:74
145
  msgid "Object cache enabled."
146
  msgstr ""
147
 
148
+ #: includes/class-plugin.php:709
149
  #: includes/cli/class-commands.php:76
150
  msgid "Object cache could not be enabled."
151
  msgstr ""
152
 
153
+ #: includes/class-plugin.php:729
154
  #: includes/cli/class-commands.php:113
155
  msgid "Object cache disabled."
156
  msgstr ""
157
 
158
+ #: includes/class-plugin.php:735
159
  #: includes/cli/class-commands.php:115
160
  msgid "Object cache could not be disabled."
161
  msgstr ""
162
 
163
+ #: includes/class-plugin.php:760
164
  #: includes/cli/class-commands.php:147
165
  msgid "Updated object cache drop-in and enabled Redis object cache."
166
  msgstr ""
167
 
168
+ #: includes/class-plugin.php:766
169
  #: includes/cli/class-commands.php:149
170
  msgid "Object cache drop-in could not be updated."
171
  msgstr ""
172
 
173
+ #: includes/class-plugin.php:833
174
  msgid "Object Cache Pro!"
175
  msgstr ""
176
 
177
  #. translators: %s = Link to the plugin setting screen.
178
+ #: includes/class-plugin.php:836
179
  msgid "A <u>business class</u> object cache backend. Truly reliable, highly-optimized and fully customizable, with a <u>dedicated engineer</u> when you most need it. <a href=\"%s\">Learn more »</a>"
180
  msgstr ""
181
 
182
+ #: includes/class-plugin.php:873
183
  msgid "Object Cache Pro + WooCommerce = ❤️"
184
  msgstr ""
185
 
186
  #. translators: %s = Link to the plugin's settings screen.
187
+ #: includes/class-plugin.php:876
188
  msgid "Object Cache Pro is a <u>business class</u> object cache that’s highly-optimized for WooCommerce to provide true reliability, peace of mind and faster load times for your store. <a style=\"color: #bb77ae;\" href=\"%s\">Learn more »</a>"
189
  msgstr ""
190
 
191
  #. translators: %1$d = number of objects. %2$s = human-readable size of cache. %3$s = name of the used client.
192
+ #: includes/class-plugin.php:942
193
  msgid "Retrieved %1$d objects (%2$s) from Redis using %3$s."
194
  msgstr ""
195
 
196
+ #: includes/class-plugin.php:999
197
  msgid "Could not initialize filesystem."
198
  msgstr ""
199
 
200
+ #: includes/class-plugin.php:1006
201
  msgid "Object cache file doesn’t exist."
202
  msgstr ""
203
 
204
+ #: includes/class-plugin.php:1011
205
  msgid "Test file exists, but couldn’t be deleted."
206
  msgstr ""
207
 
208
+ #: includes/class-plugin.php:1016
209
  msgid "Content directory is not writable."
210
  msgstr ""
211
 
212
+ #: includes/class-plugin.php:1020
213
  msgid "Failed to copy test file."
214
  msgstr ""
215
 
216
+ #: includes/class-plugin.php:1024
217
  msgid "Copied test file doesn’t exist."
218
  msgstr ""
219
 
220
+ #: includes/class-plugin.php:1030
221
  msgid "Couldn’t verify test file contents."
222
  msgstr ""
223
 
224
+ #: includes/class-plugin.php:1034
225
  msgid "Copied test file couldn’t be deleted."
226
  msgstr ""
227
 
230
  msgstr ""
231
 
232
  #: includes/class-qm-collector.php:66
233
+ #: includes/ui/tabs/overview.php:92
234
  msgid "Yes"
235
  msgstr ""
236
 
394
  msgid "The total amount of commands sent to Redis."
395
  msgstr ""
396
 
397
+ #: includes/ui/tabs/overview.php:28
398
  msgid "Status:"
399
  msgstr ""
400
 
401
+ #: includes/ui/tabs/overview.php:45
402
  msgid "Drop-in:"
403
  msgstr ""
404
 
405
+ #: includes/ui/tabs/overview.php:50
406
  msgid "Not installed"
407
  msgstr ""
408
 
409
+ #: includes/ui/tabs/overview.php:55
410
  msgid "Outdated"
411
  msgstr ""
412
 
413
+ #: includes/ui/tabs/overview.php:60
414
  msgid "Valid"
415
  msgstr ""
416
 
417
+ #: includes/ui/tabs/overview.php:65
418
  msgid "Invalid"
419
  msgstr ""
420
 
421
+ #: includes/ui/tabs/overview.php:72
422
  msgid "Filesystem:"
423
  msgstr ""
424
 
425
+ #: includes/ui/tabs/overview.php:77
426
  msgid "Not writeable"
427
  msgstr ""
428
 
429
+ #: includes/ui/tabs/overview.php:82
430
  msgid "Writeable"
431
  msgstr ""
432
 
433
+ #: includes/ui/tabs/overview.php:90
434
  msgid "Disabled:"
435
  msgstr ""
436
 
437
+ #: includes/ui/tabs/overview.php:99
438
  msgid "Key Prefix:"
439
  msgstr ""
440
 
441
+ #: includes/ui/tabs/overview.php:108
442
  msgid "Max. TTL:"
443
  msgstr ""
444
 
445
+ #: includes/ui/tabs/overview.php:114
446
  msgid "This doesn’t appear to be a valid number."
447
  msgstr ""
448
 
449
+ #: includes/ui/tabs/overview.php:126
450
  msgid "Connection"
451
  msgstr ""
452
 
453
+ #: includes/ui/tabs/overview.php:133
454
  msgid "Client:"
455
  msgstr ""
456
 
457
+ #: includes/ui/tabs/overview.php:142
458
  msgid "Host:"
459
  msgstr ""
460
 
461
+ #: includes/ui/tabs/overview.php:149
462
  msgid "Cluster:"
463
  msgstr ""
464
 
465
+ #: includes/ui/tabs/overview.php:162
466
  msgid "Shards:"
467
  msgstr ""
468
 
469
+ #: includes/ui/tabs/overview.php:175
470
  msgid "Servers:"
471
  msgstr ""
472
 
473
+ #: includes/ui/tabs/overview.php:188
474
  msgid "Port:"
475
  msgstr ""
476
 
477
+ #: includes/ui/tabs/overview.php:195
478
  msgid "Username:"
479
  msgstr ""
480
 
481
+ #: includes/ui/tabs/overview.php:202
482
  msgid "Password:"
483
  msgstr ""
484
 
485
+ #: includes/ui/tabs/overview.php:211
486
  msgid "Database:"
487
  msgstr ""
488
 
489
+ #: includes/ui/tabs/overview.php:218
490
  msgid "Connection Timeout:"
491
  msgstr ""
492
 
493
  #. translators: %s = Redis connection/read timeout in seconds.
494
+ #: includes/ui/tabs/overview.php:224
495
+ #: includes/ui/tabs/overview.php:241
496
  msgid "%ss"
497
  msgstr ""
498
 
499
+ #: includes/ui/tabs/overview.php:235
500
  msgid "Read Timeout:"
501
  msgstr ""
502
 
503
+ #: includes/ui/tabs/overview.php:252
504
  msgid "Retry Interval:"
505
  msgstr ""
506
 
507
  #. translators: %s = Redis retry interval in milliseconds.
508
+ #: includes/ui/tabs/overview.php:258
509
  msgid "%sms"
510
  msgstr ""
511
 
512
+ #: includes/ui/tabs/overview.php:269
513
  msgid "Redis Version:"
514
  msgstr ""
515
 
516
+ #: includes/ui/tabs/overview.php:282
517
  msgid "Flush Cache"
518
  msgstr ""
519
 
520
+ #: includes/ui/tabs/overview.php:288
521
  msgid "Disable Object Cache"
522
  msgstr ""
523
 
524
+ #: includes/ui/tabs/overview.php:292
525
  msgid "Enable Object Cache"
526
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: redis, predis, phpredis, credis, relay, caching, cache, object cache, perf
5
  Requires at least: 3.3
6
  Tested up to: 6.0
7
  Requires PHP: 7.2
8
- Stable tag: 2.1.6
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
@@ -83,6 +83,15 @@ To see a list of all available WP-CLI commands, please see the [WP CLI commands
83
 
84
  == Changelog ==
85
 
 
 
 
 
 
 
 
 
 
86
  = 2.1.6 =
87
 
88
  - Fixed SVN discrepancies
@@ -596,6 +605,6 @@ Since Predis isn't maintained any longer, it's highly recommended to switch over
596
 
597
  == Upgrade Notice ==
598
 
599
- = 2.1.6 =
600
 
601
  Bumped PHP requirement to 7.2, updated Predis to v2.0 and deprecated Credis and HHVM clients.
5
  Requires at least: 3.3
6
  Tested up to: 6.0
7
  Requires PHP: 7.2
8
+ Stable tag: 2.2.0
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
11
 
83
 
84
  == Changelog ==
85
 
86
+ = 2.2.0 =
87
+
88
+ - Added `redis_cache_add_non_persistent_groups` filter
89
+ - Fixed `wp_add_dashboard_widget` parameters
90
+ - Fixed `WP_REDIS_SERVERS` replication issue with Predis v2.0
91
+ - Fixed `WP_REDIS_CLUSTER` string support
92
+ - Fixed issue when `MGET` fails in `get_multiple()` call
93
+ - Fixed several warnings in the event of pipeline failures
94
+
95
  = 2.1.6 =
96
 
97
  - Fixed SVN discrepancies
605
 
606
  == Upgrade Notice ==
607
 
608
+ = 2.2.0 =
609
 
610
  Bumped PHP requirement to 7.2, updated Predis to v2.0 and deprecated Credis and HHVM clients.
redis-cache.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Redis Object Cache
4
  * Plugin URI: https://wordpress.org/plugins/redis-cache/
5
  * Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
6
- * Version: 2.1.6
7
  * Text Domain: redis-cache
8
  * Domain Path: /languages
9
  * Network: true
3
  * Plugin Name: Redis Object Cache
4
  * Plugin URI: https://wordpress.org/plugins/redis-cache/
5
  * Description: A persistent object cache backend powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
6
+ * Version: 2.2.0
7
  * Text Domain: redis-cache
8
  * Domain Path: /languages
9
  * Network: true