forked from redis/redis
-
Notifications
You must be signed in to change notification settings - Fork 4
Redis rb
ifesdjeen edited this page Oct 19, 2010
·
1 revision
Doc taken from http://github.com/ezmobius/redis-rb/
You can connect to Redis by instantiating the Redis
class:
require "redis"
redis = Redis.new
This assumes Redis was started with default values listening on localhost
, port 6379. If you need to connect to a remote server or a different port, try:
redis = Redis.new(:host => "10.0.1.1", :port => 6380)
Once connected, you can start running commands against Redis:
>> redis.set "foo", "bar"
=> "OK"
>> redis.get "foo"
=> "bar"
>> redis.sadd "users", "albert"
=> true
>> redis.sadd "users", "bernard"
=> true
>> redis.sadd "users", "charles"
=> true
How many users?
>> redis.scard "users"
=> 3
Is albert
a user?
>> redis.sismember "users", "albert"
=> true
Is isabel
a user?
>> redis.sismember "users", "isabel"
=> false
Handle groups:
>> redis.sadd "admins", "albert"
=> true
>> redis.sadd "admins", "isabel"
=> true
Users who are also admins:
>> redis.sinter "users", "admins"
=> ["albert"]
Users who are not admins:
>> redis.sdiff "users", "admins"
=> ["bernard", "charles"]
Admins who are not users:
>> redis.sdiff "admins", "users"
=> ["isabel"]
All users and admins:
>> redis.sunion "admins", "users"
=> ["albert", "bernard", "charles", "isabel"]
Redis only stores strings as values. If you want to store an object inside a key, you can use a serialization/deseralization mechanism like JSON:
>> redis.set "foo", [1, 2, 3].to_json
=> OK
>> JSON.parse(redis.get("foo"))
=> [1, 2, 3]
You can use MULTI/EXEC
to run arbitrary commands in an atomic fashion:
redis.multi do
redis.set "foo", "bar"
redis.incr "baz"
end