Skip to content

Instantly share code, notes, and snippets.

@jqr
Created July 16, 2014 17:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jqr/a870c17cda29261a448e to your computer and use it in GitHub Desktop.
Save jqr/a870c17cda29261a448e to your computer and use it in GitHub Desktop.
def dump_redis(redis, keys)
values = {}
keys.each do |key|
case type = redis.type(key)
when "hash"
values[key] = redis.hgetall(key)
when "set"
values[key] = Set.new(redis.smembers(key))
when "list"
values[key] = redis.lrange(key, 0, -1)
when "string"
values[key] = redis.get(key).to_s
else
raise "Don't know how to copy: #{type.inspect}"
end
end
values
end
def load_redis(redis, keys_and_values)
keys_and_values.each do |key, value|
case value
when Hash
redis.hmset(key, *value.to_a)
when Set
redis.sadd(key, value)
when Array
redis.lpush(key, value.reverse)
when String
redis.set(key, value)
else
raise "Don't know how to copy: #{value.class}"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment