Class RedisSessionRepository
java.lang.Object
org.springframework.session.data.redis.RedisSessionRepository
- All Implemented Interfaces:
SessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
public class RedisSessionRepository
extends Object
implements SessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
A
SessionRepository
implementation that uses Spring Data's
RedisOperations
to store sessions is Redis.
This implementation does not support publishing of session events.
- Since:
- 2.2.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The default namespace for each key and channel in Redis used by Spring Session. -
Constructor Summary
ConstructorDescriptionRedisSessionRepository
(org.springframework.data.redis.core.RedisOperations<String, Object> sessionRedisOperations) Create a newRedisSessionRepository
instance. -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.session.data.redis.RedisSessionRepository.RedisSession
Creates a newSession
that is capable of being persisted by thisSessionRepository
.void
deleteById
(String sessionId) org.springframework.session.data.redis.RedisSessionRepository.RedisSession
Returns theRedisOperations
used for sessions.void
save
(org.springframework.session.data.redis.RedisSessionRepository.RedisSession session) Ensures theSession
created bySessionRepository.createSession()
is saved.void
setDefaultMaxInactiveInterval
(Duration defaultMaxInactiveInterval) Set the maximum inactive interval in seconds between requests before newly created sessions will be invalidated.void
setFlushMode
(FlushMode flushMode) Set the flush mode.void
setRedisKeyNamespace
(String namespace) Set the Redis key namespace.void
setRedisSessionMapper
(BiFunction<String, Map<String, Object>, MapSession> redisSessionMapper) void
setSaveMode
(SaveMode saveMode) Set the save mode.void
setSessionIdGenerator
(SessionIdGenerator sessionIdGenerator) Set theSessionIdGenerator
to use to generate session ids.
-
Field Details
-
DEFAULT_KEY_NAMESPACE
The default namespace for each key and channel in Redis used by Spring Session.- See Also:
-
-
Constructor Details
-
RedisSessionRepository
public RedisSessionRepository(org.springframework.data.redis.core.RedisOperations<String, Object> sessionRedisOperations) Create a newRedisSessionRepository
instance.- Parameters:
sessionRedisOperations
- theRedisOperations
to use for managing sessions
-
-
Method Details
-
setDefaultMaxInactiveInterval
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.- Parameters:
defaultMaxInactiveInterval
- the default maxInactiveInterval
-
setRedisKeyNamespace
Set the Redis key namespace.- Parameters:
namespace
- the Redis key namespace
-
setFlushMode
Set the flush mode.- Parameters:
flushMode
- the flush mode
-
setSaveMode
Set the save mode.- Parameters:
saveMode
- the save mode
-
createSession
public org.springframework.session.data.redis.RedisSessionRepository.RedisSession createSession()Description copied from interface:SessionRepository
Creates a newSession
that is capable of being persisted by thisSessionRepository
.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 interfaceSessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
- Returns:
- a new
Session
that is capable of being persisted by thisSessionRepository
-
save
public void save(org.springframework.session.data.redis.RedisSessionRepository.RedisSession session) Description copied from interface:SessionRepository
Ensures theSession
created bySessionRepository.createSession()
is saved.Some implementations may choose to save as the
Session
is updated by returning aSession
that immediately persists any changes. In this case, this method may not actually do anything.- Specified by:
save
in interfaceSessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
- Parameters:
session
- theSession
to save
-
findById
public org.springframework.session.data.redis.RedisSessionRepository.RedisSession findById(String sessionId) Description copied from interface:SessionRepository
- Specified by:
findById
in interfaceSessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
- Parameters:
sessionId
- theSession.getId()
to lookup- Returns:
- the
Session
by theSession.getId()
or null if noSession
is found.
-
deleteById
Description copied from interface:SessionRepository
- Specified by:
deleteById
in interfaceSessionRepository<org.springframework.session.data.redis.RedisSessionRepository.RedisSession>
- Parameters:
sessionId
- theSession.getId()
to delete
-
getSessionRedisOperations
public org.springframework.data.redis.core.RedisOperations<String,Object> getSessionRedisOperations()Returns theRedisOperations
used for sessions.- Returns:
- the
RedisOperations
used for sessions
-
setSessionIdGenerator
Set theSessionIdGenerator
to use to generate session ids.- Parameters:
sessionIdGenerator
- theSessionIdGenerator
to use- Since:
- 3.2
-
setRedisSessionMapper
public void setRedisSessionMapper(BiFunction<String, Map<String, Object>, MapSession> redisSessionMapper) - Parameters:
redisSessionMapper
- the mapper to use, cannot be null- Since:
- 3.2
-