The default session store for Rails is cookie_store
. This makes the session be stored on the client side (correct me if I am wrong).
I want to change this default behavior, so that I can store the sessions into Redis database.The posts/articles I found on the Internet, suggests setup a caching store to use redis_cache_store
and then for the session_store, to use cache_store
.
As I got it, this means that, both caching and sessions will be using the same database (Instance). I don't want that. I want both sessions and cache to use different instances of Redis, so they can be configured accordingly.
I tried to create an initializer file config/initializers/session_store.rb
with the following content:
Rails.application.config.session_store :redis_cache_store, key: '_my_app_session'
But this does not work. It gives me the following error:
/application/configuration.rb:324:in `const_get': uninitialized constant ActionDispatch::Session::RedisCacheStore (NameError)
I also found this gem https://github.com/redis-store/redis-store
but I am not sure how problematic using this gem can be, since Rails already has a built-in Redis cache store (https://github.com/rails/rails/pull/31134)