如何存储过滤后的数据?

时间:2017-05-16 14:20:50

标签: laravel caching redis

我正在构建一个纯粹处理数据存储的API。

让我们想象一下Redis里面我记得20分钟的密钥foo:123,其中包含Eloquent Collection,因为我以后使用该集合而不是返回 raw json。

例如,foo集合可能看起来像

[  
   {  
      "name":"Doe",
      "first_name":"John",
      "age":42,
      "favorite_color":"red"
   },
   {  
      "name":"Example",
      "first_name":"Eric",
      "age":37,
      "favorite_color":"black"
   },
   ....
]

如何存储集合,该集合具有与黑色 favorite_color相同的结构条目?我是否必须存储foo:123:black之类的内容?我是否存储完整的集合并手动过滤掉它?或者,使用Redis时,这完全不同吗?

1 个答案:

答案 0 :(得分:1)

问:我如何存储一个新的集合,它具有相同的结构,但条目的黑色为favorite_color?

为什么不直接映射集合并将favorite_color更新为黑色? https://laravel.com/docs/5.4/collections#method-map。然后根据需要存储它,覆盖旧数据或创建新数据。

问:我是否需要存储类似foo:123:black的内容?

我不清楚你在这里要求的是什么。我不确定我们能否就您选择存储它或命名惯例给出任何答案。

问:我是否存储完整的收藏并手动过滤?

根据您的应用要求,您需要做出决定。应该可以序列化一个集合并将其存储起来,但是如果你用一堆不同的集合来做这个,那么它可能会浪费很多资源。