Skip to content

A Redis session store for the Marten web framework.

License

Notifications You must be signed in to change notification settings

martenframework/marten-redis-session

Repository files navigation

Marten Redis Session

CI CI

Marten Redis Session provides a Redis session store for the Marten web framework.

Installation

Simply add the following entry to your project's shard.yml:

dependencies:
  marten_redis_session:
    github: martenframework/marten-redis-session

And run shards install afterward.

Configuration

First, add the following requirement to your project's src/project.cr file:

require "marten_redis_session"

Then you can configure your project to use the Redis session store by ensuring that the sessions.store setting is set to :redis:

Marten.configure do |config|
  config.sessions.store = :redis
end

Congrats! You’re in! From now on, your session data will be persisted in Redis.

It should be noted that by default the Redis session store will attempt to connect to Redis on localhost and port 6379. This can be changed by setting a different URI through the use of the redis_session.uri setting:

Marten.configure do |config|
  config.redis_session.uri = "redis:///"
end

It is also worth mentioning that you can leverage the redis_session.namespace setting to configure a "namespace" for the Redis keys that will be used to persist session data. This can be useful if your Redis instance is shared for various purposes and you need to prevent conflicts between session data keys and other Redis keys. For example:

Marten.configure do |config|
  config.redis_session.namespace = "sessions"
end

Authors

Morgan Aubert (@ellmetha) and contributors.

License

MIT. See LICENSE for more details.