美文网首页
Rails redis 常用操作 保存哈希hash 数组 Arr

Rails redis 常用操作 保存哈希hash 数组 Arr

作者: 2fa358379d2e | 来源:发表于2019-02-25 21:33 被阅读0次

转载自:https://www.vicw.com/groups/code_monkey/topics/137

Rails redis 常用操作

保存哈希hash 数组 Array 格式化哈希

$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'))

相关文章

网友评论

      本文标题:Rails redis 常用操作 保存哈希hash 数组 Arr

      本文链接:https://www.haomeiwen.com/subject/hnynyqtx.html