README.md in redis-store-1.0.0.1 vs README.md in redis-store-1.1.0.rc

- old
+ new

@@ -1,239 +1,36 @@ -# Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks +# Redis stores for Ruby frameworks -## Installation +__Redis Store__ provides a full set of stores (*Cache*, *I18n*, *Session*, *HTTP Cache*) for all the modern Ruby frameworks like: __Ruby on Rails__, __Sinatra__, __Rack__, __Rack::Cache__ and __I18n__. It natively supports object marshalling, timeouts, single or multiple nodes and namespaces. -### Redis, Option 1: Homebrew +This is the core for all the other gems, please check the *READMEs* to be informed about the usage. +## Redis Installation + +### Option 1: Homebrew + MacOS X users should use [Homebrew](https://github.com/mxcl/homebrew) to install Redis: brew install redis -### Redis, Option 2: From Source +### Option 2: From Source -Download and install Redis from [http://code.google.com/p/redis/](http://code.google.com/p/redis/) +Download and install Redis from [http://redis.io](http://redis.io/) - wget http://redis.googlecode.com/files/redis-2.0.0.tar.gz - tar -zxf redis-2.0.0.tar.gz - mv redis-2.0.0 redis + wget http://redis.googlecode.com/files/redis-2.4.5.tar.gz + tar -zxf redis-2.4.5.tar.gz + mv redis-2.4.5 redis cd redis make -### Install the Gem +## Running tests -Assuming you're using RVM or on Windows, install the gem with: - - gem install redis-store - -## Options -You can specify the Redis configuration details using a URI or a hash. By default the gem will attempt to connect to `localhost` port `6379` and the db `0`. - -### Set by URI - -For example - - "redis://:secret@192.168.1.100:23682/13/theplaylist" - -Made up of the following: - - host: 192.168.1.100 - port: 23682 - db: 13 - namespace: theplaylist - password: secret - -If you want to specify the `namespace` option, you have to pass the `db` param too. -#### __Important__: `namespace` is only supported for single, non-distributed stores. - -### Set by Hash - - { :host => 192.168.1.100, :port => 23682, :db => 13, :namespace => "theplaylist", :password => "secret" } - -#### __Important__: `namespace` is only supported for single, non-distributed stores. - -## Cache store - -Provides a cache store for your Ruby web framework of choice. - -### Rails 2.x - - config.gem "redis-store" - config.cache_store = :redis_store - -### Rails 2.x (with Bundler) - - # Gemfile - gem "redis-store" - - # in your configuration - config.gem "redis-store" - config.cache_store = :redis_store, { ... optional configuration ... } - -### Rails 3.x - - # Gemfile - gem 'redis' - gem 'redis-store', '1.0.0.1' - - # config/environments/production.rb - config.cache_store = :redis_store, { ... optional configuration ... } - -For advanced configurations scenarios please visit [the wiki](https://github.com/jodosha/redis-store/wiki/Frameworks-Configuration). - -### Merb - - dependency "redis-store", "1.0.0.1" - dependency("merb-cache", merb_gems_version) do - Merb::Cache.setup do - register(:redis, Merb::Cache::RedisStore, :servers => ["127.0.0.1:6379"]) - end - end - -### Sinatra - - require "sinatra" - require "redis-store" - class MyApp < Sinatra::Base - register Sinatra::Cache - get "/hi" do - settings.cache.fetch("greet") { "Hello, World!" } - end - end - -Keep in mind that the above fetch will return "OK" on success, not the return of the block. - -For advanced configurations scenarios please visit [the wiki](https://github.com/jodosha/redis-store/wiki/Frameworks-Configuration). - -## Rack::Session - -Provides a Redis store for Rack::Session. See [http://rack.rubyforge.org/doc/Rack/Session.html](http://rack.rubyforge.org/doc/Rack/Session.html) - -### Rack application - - require "rack" - require "redis-store" - require "application" - use Rack::Session::Redis - run Application.new - -### Rails 2.x - - # config/environment.rb - config.gem "redis-store" - - # then configure as following: - - # config/environments/*.rb - config.cache_store = :redis_store - - # or - - # config/initializers/session_store.rb - ActionController::Base.session = { - :key => APPLICATION['session_key'], - :secret => APPLICATION['session_secret'], - :key_prefix => Rails.env - } - - ActionController::Base.session_store = :redis_session_store - -### Rails 2.x (with Bundler) - - # Gemfile - gem "redis-store" - - # then configure as following: - - # config/environments/*.rb - config.cache_store = :redis_store - - # or - - # config/initializers/session_store.rb - ActionController::Base.session = { - :key => APPLICATION['session_key'], - :secret => APPLICATION['session_secret'], - :key_prefix => Rails.env - } - - ActionController::Base.session_store = :redis_session_store - -### Rails 3.x - - # Gemfile - gem 'rails', '3.0.3' - gem 'redis' - gem 'redis-store', '1.0.0.1' - - # config/initializers/session_store.rb - MyApp::Application.config.session_store :redis_session_store - -For advanced configurations scenarios please visit [the wiki](https://github.com/jodosha/redis-store/wiki/Frameworks-Configuration). - -### Merb - - dependency "redis-store", "1.0.0.1" - Merb::Config.use do |c| - c[:session_store] = "redis" - end - Merb::BootLoader.before_app_loads do - Merb::SessionContainer.subclasses << "Merb::RedisSession" - end - -### Sinatra - - require "sinatra" - require "redis-store" - - class MyApp < Sinatra::Base - use Rack::Session::Redis, :redis_server => 'redis://127.0.0.1:6379/0' # Redis server on localhost port 6379, database 0 - - get "/" do - session[:visited_at] = DateTime.now.to_s # This is stored in Redis - "Hello, visitor." - end - end - -For advanced configurations scenarios please visit [the wiki](https://github.com/jodosha/redis-store/wiki/Frameworks-Configuration). - -## Rack::Cache - -Provides a Redis store for HTTP caching. See [http://github.com/rtomayko/rack-cache](http://github.com/rtomayko/rack-cache) - - require "rack" - require "rack/cache" - require "redis-store" - require "application" - use Rack::Cache, - :metastore => 'redis://localhost:6379/0/metastore', - :entitystore => 'redis://localhost:6380/0/entitystore' - run Application.new - -## I18n - - require "i18n" - require "redis-store" - I18n.backend = I18n::Backend::Redis.new - -The backend accepts the uri string and hash options. - -## Unicorn - -Use `Rails.cache.reconnect` in your Unicorn hooks, in order to force the client reconnection. - -## Running specs - - gem install jeweler bundler git clone git://github.com/jodosha/redis-store.git - cd redis-store - bundle install - REDIS_STORE_ENV=rails3 bundle install # to install Rails 3 gems - rake dtach:install - rake redis:install - rake - REDIS_STORE_ENV=rails3 rake # to test against Rails 3 + cd redis-store/redis-store + gem install bundler --pre # required version: 1.1.rc + ruby ci/run.rb -If you are on **Snow Leopard** you have to run `env ARCHFLAGS="-arch x86_64" bundle install` +If you are on **Snow Leopard** you have to run `env ARCHFLAGS="-arch x86_64" ruby ci/run.rb` ## Copyright (c) 2009 - 2011 Luca Guidi - [http://lucaguidi.com](http://lucaguidi.com), released under the MIT license