Skip to content

Redis URI and connection details

Mark Paluch edited this page Aug 15, 2023 · 13 revisions

Connections to a Redis Standalone, Sentinel, or Cluster require a specification of the connection details. The unified form is RedisURI. You can provide the database, password and timeouts within the RedisURI. You have following possibilities to create a RedisURI:

  1. Use an URI:

        RedisURI.create("redis://localhost/");
  2. Use the Builder

        RedisURI.Builder.redis("localhost", 6379).auth("password").database(1).build();
  3. Set directly the values in RedisURI

        new RedisURI("localhost", 6379, 60, TimeUnit.SECONDS);

URI syntax

Redis Standalone

redis :// [[username :] password@] host [:port][/database]
          [?[timeout=timeout[d|h|m|s|ms|us|ns]] [&clientName=clientName]
          [&libraryName=libraryName] [&libraryVersion=libraryVersion] ]

Redis Standalone (SSL)

rediss :// [[username :] password@] host [: port][/database]
           [?[timeout=timeout[d|h|m|s|ms|us|ns]] [&clientName=clientName]
           [&libraryName=libraryName] [&libraryVersion=libraryVersion] ]

Redis Standalone (Unix Domain Sockets)

redis-socket :// [[username :] password@]path
                 [?[timeout=timeout[d|h|m|s|ms|us|ns]] [&database=database]
                 [&clientName=clientName] [&libraryName=libraryName]
                 [&libraryVersion=libraryVersion] ]

Redis Sentinel

redis-sentinel :// [[username :] password@] host1[:port1] [, host2[:port2]] [, hostN[:portN]] [/database]
                   [?[timeout=timeout[d|h|m|s|ms|us|ns]] [&sentinelMasterId=sentinelMasterId]
                   [&clientName=clientName] [&libraryName=libraryName]
                   [&libraryVersion=libraryVersion] ]

Schemes

  • redis Redis Standalone

  • rediss Redis Standalone SSL

  • redis-socket Redis Standalone Unix Domain Socket

  • redis-sentinel Redis Sentinel

Timeout units

  • d Days

  • h Hours

  • m Minutes

  • s Seconds

  • ms Milliseconds

  • us Microseconds

  • ns Nanoseconds

Hint: The database parameter within the query part has higher precedence than the database in the path.

RedisURI supports Redis Standalone, Redis Sentinel and Redis Cluster with plain, SSL, TLS and unix domain socket connections.

Hint: The database parameter within the query part has higher precedence than the database in the path. RedisURI supports Redis Standalone, Redis Sentinel and Redis Cluster with plain, SSL, TLS and unix domain socket connections.

Authentication

Redis URIs may contain authentication details that effectively lead to usernames with passwords, password-only, or no authentication. Connections are authenticated by using the information provided through RedisCredentials. Credentials are obtained at connection time from RedisCredentialsProvider. When configuring username/password on the URI statically, then a StaticCredentialsProvider holds the configured information.

Notes

  • When using Redis Sentinel, the password from the URI applies to the data nodes only. Sentinel authentication must be configured for each sentinel node.

  • Usernames are supported as of Redis 6.

  • Library name and library version are automatically set on Redis 7.2 or greater.

Clone this wiki locally