在redis中存储复杂数据

sma*_*i12 1 ruby-on-rails redis

我最近开始使用redis(在轨道上使用ruby),我想知道存储此类数据的最佳方法是什么.

data1 = {
  'name2' : {
     'age' : xxx,
     'height' : xxx,
   },
  'name2' : {
    'age' : xxx,
    'weight' : xxx,
   }
}

data2 = {
  'class1' : {
     'num' : xxx,
     'location' : xxx,
     'teacher' : xxx,
  },
  'class2' : {
    'num' : xxx,
    'location' : xxx,
    'teacher' : xxx,
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用哈希映射(hset,hmset,hget,hmget)命令,但它们似乎不能使用像"年龄"和"高度"这样的子键.

小智 5

您似乎正在尝试在Redis中存储一些JSON.使用redis-rb gem,这样做非常简单.例如,您可以执行以下操作:

redis = Redis.new
redis.set("key", data1)
Run Code Online (Sandbox Code Playgroud)

那么当你想要检索这些数据时,我会做这样的事情:

data = JSON.parse(redis.get("key"))
Run Code Online (Sandbox Code Playgroud)

这将使用名为"key"的密钥检索存储在Redis中的JSON对象,然后将其解析为Ruby哈希.我希望这有帮助!

  • 或者,您可以分解JSON对象并使用Hash命令,因为OP已经直观地尝试过.这样做的好处是能够独立访问每个字段以进行读取和/或写入,但如果整体需要,则需要从不同的键和字段重新组装完整的JSON对象. (2认同)