diff --git a/includes/admin.inc b/includes/admin.inc
index 956e46ca5ead9685a6c44aa1d1ab40d1ac3632cc..accad0a9fb5e698e737d6efee77f0bb1071b76a2 100644
--- a/includes/admin.inc
+++ b/includes/admin.inc
@@ -718,7 +718,7 @@ function views_ui_add_form_save_submit($form, &$form_state) {
   }
   $view->save();
   menu_rebuild();
-  cache_clear_all('*', 'cache_views', TRUE);
+  cache('cache_views')->flush();
   cache_clear_all();
   $form_state['redirect'] = 'admin/structure/views';
   if (!empty($view->display['page'])) {
@@ -2152,7 +2152,7 @@ function views_ui_edit_view_form_submit($form, &$form_state) {
   menu_rebuild();
 
   // Clear the views cache.
-  cache_clear_all('*', 'cache_views');
+  cache('cache_views')->flush();
 
   // Clear the page cache.
   cache_clear_all();
diff --git a/includes/view.inc b/includes/view.inc
index 349084eb7e3bc486b94764aae9396116af089614..a896a5e5714c3b017bd9dd539f7b591749808aa0 100644
--- a/includes/view.inc
+++ b/includes/view.inc
@@ -1756,7 +1756,7 @@ function save() {
 
     $this->save_locale_strings();
 
-    cache_clear_all('views_urls', 'cache_views');
+    cache('cache_views')->delete('views_urls');
     cache_clear_all(); // clear the page cache as well.
   }
 
@@ -1791,7 +1791,7 @@ function delete($clear = TRUE) {
         ->execute();
     }
 
-    cache_clear_all('views_query:' . $this->name, 'cache_views');
+    cache('cache_views')->delete('views_query:' . $this->name);
 
     if ($clear) {
       cache_clear_all(); // this clears the block and page caches only.
diff --git a/plugins/views_plugin_cache.inc b/plugins/views_plugin_cache.inc
index dd25c889dd1d4a2f8b4056a685ee55bb0473cbf4..151fd92e25b09655d9974830877816296d942323 100644
--- a/plugins/views_plugin_cache.inc
+++ b/plugins/views_plugin_cache.inc
@@ -149,7 +149,7 @@ function cache_get($type) {
    * to be sure that we catch everything. Maybe that's a bad idea.
    */
   function cache_flush() {
-    cache_clear_all($this->view->name . ':', $this->table, TRUE);
+    cache($this->table)->deletePrefix($this->view->name . ':');
   }
 
   /**
diff --git a/views.install b/views.install
index a2a578705813eb1b9811f6c9da2a7e5f951a8bc7..4e7f745ebe20f6272aed6162a8e852b8eee1206d 100644
--- a/views.install
+++ b/views.install
@@ -592,7 +592,7 @@ function views_update_7001() {
     db_delete('menu_links')
       ->condition('link_path', 'admin/structure/views/%', 'LIKE')
       ->execute();
-    cache_clear_all(NULL, 'cache_menu');
+    cache('cache_menu')->expire();
     menu_rebuild();
   }
 }
diff --git a/views.module b/views.module
index 6ba2bcb4f5da7f1da8b8f341648d751e61859856..696fbf1b25cf3bb11e605b23e8ea8fc9d84687c3 100644
--- a/views.module
+++ b/views.module
@@ -844,31 +844,31 @@ function views_flush_caches() {
  * Implements hook_field_create_instance.
  */
 function views_field_create_instance($instance) {
-  cache_clear_all('*', 'cache_views', TRUE);
-  cache_clear_all('*', 'cache_views_data', TRUE);
+  cache('cache_views')->flush();
+  cache('cache_views_data')->flush();
 }
 
 /**
  * Implements hook_field_update_instance.
  */
 function views_field_update_instance($instance, $prior_instance) {
-  cache_clear_all('*', 'cache_views', TRUE);
-  cache_clear_all('*', 'cache_views_data', TRUE);
+  cache('cache_views')->flush();
+  cache('cache_views_data')->flush();
 }
 
 /**
  * Implements hook_field_delete_instance.
  */
 function views_field_delete_instance($instance) {
-  cache_clear_all('*', 'cache_views', TRUE);
-  cache_clear_all('*', 'cache_views_data', TRUE);
+  cache('cache_views')->flush();
+  cache('cache_views_data')->flush();
 }
 
 /**
  * Invalidate the views cache, forcing a rebuild on the next grab of table data.
  */
 function views_invalidate_cache() {
-  cache_clear_all('*', 'cache_views', TRUE);
+  cache('cache_views')->flush();
 }
 
 /**