Class RedisSessionRepository

All Implemented Interfaces:

public class RedisSessionRepository extends Object implements SessionRepository<>
A SessionRepository implementation that uses Spring Data's RedisOperations to store sessions is Redis.

This implementation does not support publishing of session events.

  • Field Details


      public static final String DEFAULT_KEY_NAMESPACE
      The default namespace for each key and channel in Redis used by Spring Session.
      See Also:
  • Constructor Details

    • RedisSessionRepository

      public RedisSessionRepository(<String,Object> sessionRedisOperations)
      Create a new RedisSessionRepository instance.
      sessionRedisOperations - the RedisOperations to use for managing sessions
  • Method Details

    • setDefaultMaxInactiveInterval

      public void setDefaultMaxInactiveInterval(Duration defaultMaxInactiveInterval)
      Set the maximum inactive interval in seconds between requests before newly created sessions will be invalidated. A negative time indicates that the session will never time out. The default is 30 minutes.
      defaultMaxInactiveInterval - the default maxInactiveInterval
    • setRedisKeyNamespace

      public void setRedisKeyNamespace(String namespace)
      Set the Redis key namespace.
      namespace - the Redis key namespace
    • setFlushMode

      public void setFlushMode(FlushMode flushMode)
      Set the flush mode.
      flushMode - the flush mode
    • setSaveMode

      public void setSaveMode(SaveMode saveMode)
      Set the save mode.
      saveMode - the save mode
    • createSession

      public createSession()
      Description copied from interface: SessionRepository
      Creates a new Session that is capable of being persisted by this SessionRepository.

      This allows optimizations and customizations in how the Session is persisted. For example, the implementation returned might keep track of the changes ensuring that only the delta needs to be persisted on a save.

      Specified by:
      createSession in interface SessionRepository<>
      a new Session that is capable of being persisted by this SessionRepository
    • save

      public void save( session)
      Description copied from interface: SessionRepository
      Ensures the Session created by SessionRepository.createSession() is saved.

      Some implementations may choose to save as the Session is updated by returning a Session that immediately persists any changes. In this case, this method may not actually do anything.

      Specified by:
      save in interface SessionRepository<>
      session - the Session to save
    • findById

      public findById(String sessionId)
      Description copied from interface: SessionRepository
      Gets the Session by the Session.getId() or null if no Session is found.
      Specified by:
      findById in interface SessionRepository<>
      sessionId - the Session.getId() to lookup
      the Session by the Session.getId() or null if no Session is found.
    • deleteById

      public void deleteById(String sessionId)
      Description copied from interface: SessionRepository
      Deletes the Session with the given Session.getId() or does nothing if the Session is not found.
      Specified by:
      deleteById in interface SessionRepository<>
      sessionId - the Session.getId() to delete
    • getSessionRedisOperations

      public<String,Object> getSessionRedisOperations()
      Returns the RedisOperations used for sessions.
      the RedisOperations used for sessions