diff --git a/manifests/cache.pp b/manifests/cache.pp
index c3d39963d..63d3b2748 100644
--- a/manifests/cache.pp
+++ b/manifests/cache.pp
@@ -119,6 +119,30 @@
 #   (Optional) The password for the memcached with SASL enabled
 #   Defaults to $facts['os_service_default']
 #
+# [*redis_server*]
+#   (Optional) Redis server in the format of "host:port".
+#   Defaults to $facts['os_service_default']
+#
+# [*redis_username*]
+#   (Optional) The user name for redis
+#   Defaults to $facts['os_service_default']
+#
+# [*redis_password*]
+#   (Optional) The password for redis
+#   Defaults to $facts['os_service_default']
+#
+# [*redis_sentinels*]
+#   (Optional) Redis sentinel servers in the format of host:port
+#   Defaults to $facts['os_service_default']
+#
+# [*redis_socket_timeout*]
+#   (Optional) Timeout in seconds for every call to a server
+#   Defaults to $facts['os_service_default']
+#
+# [*redis_sentinel_service_name*]
+#   (Optional) Service name of the redis sentinel cluster.
+#   Defaults to $facts['os_service_default']
+#
 # [*token_caching*]
 #   (Optional) Toggle for token system caching. This has no effect unless
 #   cache_backend, cache_enabled and cache_memcache_servers is set.
@@ -214,6 +238,12 @@ class keystone::cache(
   $memcache_sasl_enabled                = $facts['os_service_default'],
   $memcache_username                    = $facts['os_service_default'],
   $memcache_password                    = $facts['os_service_default'],
+  $redis_server                         = $facts['os_service_default'],
+  $redis_username                       = $facts['os_service_default'],
+  $redis_password                       = $facts['os_service_default'],
+  $redis_sentinels                      = $facts['os_service_default'],
+  $redis_socket_timeout                 = $facts['os_service_default'],
+  $redis_sentinel_service_name          = $facts['os_service_default'],
   $token_caching                        = $facts['os_service_default'],
   $tls_enabled                          = $facts['os_service_default'],
   $tls_cafile                           = $facts['os_service_default'],
@@ -261,6 +291,12 @@ class keystone::cache(
     memcache_sasl_enabled                => $memcache_sasl_enabled,
     memcache_username                    => $memcache_username,
     memcache_password                    => $memcache_password,
+    redis_server                         => $redis_server,
+    redis_username                       => $redis_username,
+    redis_password                       => $redis_password,
+    redis_sentinels                      => $redis_sentinels,
+    redis_socket_timeout                 => $redis_socket_timeout,
+    redis_sentinel_service_name          => $redis_sentinel_service_name,
     tls_enabled                          => $tls_enabled,
     tls_cafile                           => $tls_cafile,
     tls_certfile                         => $tls_certfile,
diff --git a/releasenotes/notes/cache-redis-opts-328160577c0fd658.yaml b/releasenotes/notes/cache-redis-opts-328160577c0fd658.yaml
new file mode 100644
index 000000000..f0e36d271
--- /dev/null
+++ b/releasenotes/notes/cache-redis-opts-328160577c0fd658.yaml
@@ -0,0 +1,12 @@
+---
+features:
+  - |
+    The ``keystone::cache`` class now supports the following new options for
+    Redis backend and Redis Sentinel backend.
+
+    - ``redis_server``
+    - ``redis_username``
+    - ``redis_password``
+    - ``redis_sentinels``
+    - ``redis_socket_timeout``
+    - ``redis_sentinel_service_name``
diff --git a/spec/classes/keystone_cache_spec.rb b/spec/classes/keystone_cache_spec.rb
index 7a094a302..b2a07f7d5 100644
--- a/spec/classes/keystone_cache_spec.rb
+++ b/spec/classes/keystone_cache_spec.rb
@@ -34,6 +34,12 @@ describe 'keystone::cache' do
           :memcache_sasl_enabled                => '<SERVICE DEFAULT>',
           :memcache_username                    => '<SERVICE DEFAULT>',
           :memcache_password                    => '<SERVICE DEFAULT>',
+          :redis_server                         => '<SERVICE DEFAULT>',
+          :redis_username                       => '<SERVICE DEFAULT>',
+          :redis_password                       => '<SERVICE DEFAULT>',
+          :redis_sentinels                      => '<SERVICE DEFAULT>',
+          :redis_socket_timeout                 => '<SERVICE DEFAULT>',
+          :redis_sentinel_service_name          => '<SERVICE DEFAULT>',
           :tls_enabled                          => '<SERVICE DEFAULT>',
           :tls_cafile                           => '<SERVICE DEFAULT>',
           :tls_certfile                         => '<SERVICE DEFAULT>',
@@ -73,6 +79,12 @@ describe 'keystone::cache' do
           :memcache_sasl_enabled                => false,
           :memcache_username                    => 'sasluser',
           :memcache_password                    => 'saslpass',
+          :redis_server                         => 'localhost:6379',
+          :redis_username                       => 'redisuser',
+          :redis_password                       => 'redispass',
+          :redis_sentinels                      => ['host1:26379', 'host2:26379'],
+          :redis_socket_timeout                 => 1.0,
+          :redis_sentinel_service_name          => 'mymaster',
           :tls_enabled                          => false,
           :enable_retry_client                  => false,
           :retry_attempts                       => 2,
@@ -110,6 +122,12 @@ describe 'keystone::cache' do
           :memcache_sasl_enabled                => false,
           :memcache_username                    => 'sasluser',
           :memcache_password                    => 'saslpass',
+          :redis_server                         => 'localhost:6379',
+          :redis_username                       => 'redisuser',
+          :redis_password                       => 'redispass',
+          :redis_sentinels                      => ['host1:26379', 'host2:26379'],
+          :redis_socket_timeout                 => 1.0,
+          :redis_sentinel_service_name          => 'mymaster',
           :tls_enabled                          => false,
           :tls_cafile                           => '<SERVICE DEFAULT>',
           :tls_certfile                         => '<SERVICE DEFAULT>',