diff --git a/core/lib/Drupal/Core/Cache/CacheFactory.php b/core/lib/Drupal/Core/Cache/CacheFactory.php
index da42a26..a56562c 100644
--- a/core/lib/Drupal/Core/Cache/CacheFactory.php
+++ b/core/lib/Drupal/Core/Cache/CacheFactory.php
@@ -32,7 +32,13 @@ public static function get($bin) {
     // use the default 'cache' definition otherwise.
     $cache_backends = self::getBackends();
     $class = isset($cache_backends[$bin]) ? $cache_backends[$bin] : $cache_backends['cache'];
-    return new $class($bin);
+
+    $backend = new $class($bin);
+    if ($backend instanceof BackendChain) {
+      $backend->appendBackend(new MemoryBackend($bin));
+      $backend->appendBackend(new DatabaseBackend($bin));
+    }
+    return $backend;
   }
 
   /**
@@ -50,6 +56,8 @@ public static function getBackends() {
     $cache_backends = isset($conf['cache_classes']) ? $conf['cache_classes'] : array();
     // Ensure there is a default 'cache' bin definition.
     $cache_backends += array('cache' => 'Drupal\Core\Cache\DatabaseBackend');
+    // Add cache chain config for the config bin.
+    $cache_backends += array('config' => 'Drupal\Core\Cache\BackendChain');
     return $cache_backends;
   }
 
