A Ruby client library for the Redis key-value storage system.
Redis is a key-value store with some interesting features:
- It's fast.
- Keys are strings but values are typed. Currently Redis supports strings, lists, sets, sorted sets and hashes. Atomic operations can be done on all of these types.
See the Redis homepage for more information.
For all types redis-rb needs redis-server running to connect to.
require 'redis'
r = Redis.new
r['key_one'] = "value_one"
r['key_two'] = "value_two"
r['key_one] # => "value_one"
Redis only stores strings. To store Objects, Array or Hashes, you must Marshal
require 'redis'
r = Redis.new
example_hash_to_store = {:name => "Alex", :age => 21, :password => "letmein", :cool => false}
r['key_one'] = Marshal.dump(example_hash_to_store)
hash_returned_from_redis = Marshal.load(r['key_one'])
Alternatively you can use the Redis Commands
require 'redis'
r = Redis.new
r.set 'key_one', 'value_one'
r.get 'key_one' # => 'value_one'
# Using Redis list objects
# Push an object to the head of the list. Creates the list if it doesn't allready exsist.
blog_hash = {:title => "Redis Rules!", :body => "Ok so, like why, well like, RDBMS is like....", :created_at => Time.now.to_i}
r.lpush 'all_blogs', Marshal.dump(blog_hash)
# Get a range of strings from the all_blogs list. Similar to offset and limit in SQL (-1, means the last one)
r.lrange 'all_blogs', 0, -1
require 'redis'
r = Redis.new
r.multi do
r.set 'foo', 'bar'
r.incr 'baz'
end
See the build on RunCodeRun.
If you would like to submit patches, you'll need Redis in your development environment:
rake redis:install
Check the examples/
directory. You'll need to have an instance of redis-server
running before running the examples.