diff --git a/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php b/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php
index 68a1c4c27503c678bb814ef9ecc264aa8dee5bad..a236d8073e21fe4c5bf6b124646234254f7f856e 100644
--- a/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php
+++ b/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php
@@ -198,7 +198,7 @@ function cache_get($type) {
    * to be sure that we catch everything. Maybe that's a bad idea.
    */
   function cache_flush() {
-    cache($this->table)->deletePrefix($this->view->storage->name . ':');
+    cache($this->table)->invalidateTags(array($this->view->storage->name => TRUE));
   }
 
   /**
diff --git a/views.api.php b/views.api.php
index 29666a4821f89833e02889ce22634907ce9a178b..4479cd02bf155c0503f1eb9f2f2fd07ec5e3fd1f 100644
--- a/views.api.php
+++ b/views.api.php
@@ -1078,7 +1078,7 @@ function hook_views_ajax_data_alter(&$commands, $view) {
  * @see views_invalidate_cache()
  */
 function hook_views_invalidate_cache() {
-  cache('mymodule')->deletePrefix('views:*');
+  cache('mymodule')->invalidateTags(array('views' => TRUE));
 }
 
 /**