Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
redis-rails
provides a full set of stores (Cache, Session, HTTP Cache) for Ruby on Rails. See the main redis-store readme for general guidelines.
Rails 5.2.0 includes a Redis cache store out of the box, so you don't really need this gem anymore if you just need to store the fragment cache in Redis. Maintenance on the redis-activesupport gem will continue for security and compatibility issues, but we are no longer accepting new features. We are still actively maintaining all other gems in the redis-store family.
Add the following to your Gemfile:
gem 'redis-rails'
redis-rails
packages storage drivers for Redis which implement the
ActiveSupport fragment caching and ActionDispatch / Rack session
storage APIs. The following section(s) explain how to configure each
store:
Configure the fragment cache store in config/environments/production.rb like so:
config.cache_store = :redis_store, "redis://localhost:6379/0/cache", { expires_in: 90.minutes }
The ActiveSupport::Cache::Store
implementation assumes that your
backend store (Redis, Memcached, etc) will be available at boot time. If
you cannot guarantee this, you can use the raise_errors: false
option
to rescue connection errors.
You can also provide a hash instead of a URL:
config.cache_store = :redis_store, {
host: "localhost",
port: 6379,
db: 0,
password: "mysecret",
namespace: "cache"
}, {
expires_in: 90.minutes
}
You can also store your session data in Redis, keeping user-specific data isolated, shared, and highly available. Built upon redis-rack, we present the session data to the user as a signed/encrypted cookie, but we persist the data in Redis.
Add the following to your config/initializers/session_store.rb to use Redis as the session store.
MyApplication::Application.config.session_store :redis_store,
servers: ["redis://localhost:6379/0/session"],
expire_after: 90.minutes,
key: "_#{Rails.application.class.parent_name.downcase}_session",
threadsafe: true,
signed: true,
secure: true
A brief run-down of these options...
:redis_store
false
if you want to disable the global mutex lock on
session data. It's true
by default, meaning the mutex will be
enabled.We also provide an adapter for Rack::Cache that lets you store HTTP caching data in Redis. To take advantage of this, add the following to Gemfile:
group :production do
gem 'redis-rack-cache'
end
Then, add the following to config/environments/production.rb:
# config/environments/production.rb
config.action_dispatch.rack_cache = {
metastore: "redis://localhost:6379/1/metastore",
entitystore: "redis://localhost:6379/1/entitystore"
}
You can also use Redis Sentinel to manage a cluster of Redis servers for high-availability data access. To do so, configure the sentinel servers like so:
sentinel_config = {
url: "redis://mymaster/0",
role: "master",
sentinels: [{
host: "127.0.0.1",
port: 26379
},{
host: "127.0.0.1",
port: 26380
},{
host: "127.0.0.1",
port: 26381
}]
}
You can then include this in your cache store configuration within config/environments/production.rb:
config.cache_store = :redis_store, sentinel_config.merge(
namespace: "cache",
expires_in: 1.days
)
config.session_store :redis_store, {
servers: [
sentinel_config.merge(
namespace: "sessions"
)
],
expire_after: 2.days
}
You can also specify only a subset of the nodes, and the client will discover the missing ones using the CLUSTER NODES command.
config.cache_store = :redis_store, { cluster: %w[redis://127.0.0.1:6379/0/] }
gem install bundler
git clone git://github.com/redis-store/redis-rails.git
cd redis-rails
RAILS_VERSION=5.0.1 bundle install
RAILS_VERSION=5.0.1 bundle exec rake
If you are on Snow Leopard, run env ARCHFLAGS="-arch x86_64" bundle exec rake
2009 - 2018 Luca Guidi - http://lucaguidi.com, released under the MIT license
FAQs
Unknown package
We found that qubole-redis-rails demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.