$redis = Redis.new
1.哈希存储
key = 'hash1'
value = { a: '1', b: '2' }
# 直接存哈希
$redis.mapped_hmset(key, value)
# 取值
$redis.hgetall("hash1")
#=> {"a"=>"1", "b"=>"2"}
根据键存储哈希
根据reids key 和hash 的键存值
$redis.hset("hash2", "field1", "123456")
# 取值
$redis.hgetall("hash2")
#=> {"field1"=>"123456"}
# 根据reids key 和hash 的键取值
$redis.hget("hash2", 'field1')
#=> "123456"
# 删除key为:"hash2" 和hash key为:'field1'的键值对
$redis.hdel("hash2", 'field1')
using transform_keys
or deep_symbolize_keys
you can turn those de-symbolized keys back into symbolized
# 将hash的键转化为symbol格式
hash = { 'person' => { 'name' => 'Rob', 'age' => '28' } }
hash.deep_symbolize_keys
# => {:person=>{:name=>"Rob", :age=>"28"}}
# 将hash的键转化为string格式
h = { a: 1, b: 2, c: 3 }
h.transform_keys {|k| k.to_s }
#=> { "a" => 1, "b" => 2, "c" => 3 }
h.transform_keys(&:to_s)
#=> { "a" => 1, "b" => 2, "c" => 3 }
h.transform_keys.with_index {|k, i| "#{k}.#{i}" }
#=> { "a.0" => 1, "b.1" => 2, "c.2" => 3 }
# 清空redis所有数据
$redis.flushall
保存数组
# 直接存数组
$redis.sadd('arr1', [1, 2])
# 取值
$redis.smembers('arr1')
=> ["1", "2"]
删除元素
$redis.srem('arr1', 1)
=> true
$redis.smembers('arr1')
=> ["2"]
对于复杂的hash和数组,可以如下处理
value = { a: [1, 2], b: [4, 5, 6] }
$redis.set('key1', value.to_json)
# 取值
$JSON.parse(redis.get('key1'))
短腿猫不吃鱼
#1楼