2017-05-16 56 views
0

我正在构建一个纯粹处理数据存储的API。如何存储过滤的数据?

让我们想象一下里面的Redis我想起了关键foo:123 20分钟,因为我使用的是集合以后,而不是返回原料 JSON其持有Eloquent Collection

作为例子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

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

为什么不只是映射集合并将favorite_color更新为黑色? https://laravel.com/docs/5.4/collections#method-map。然后将其存储,无论是覆盖旧数据还是创建新数据。

问:我需要存储诸如foo:123:black之类的东西吗?

我不清楚你在这里要求什么。我不确定我们可以告诉你如何选择存储它或命名约定。

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

这是你需要根据你的应用需求来决定的东西。应该可以对一个集合进行序列化并将其存储起来,但是如果你正在用一些不同的集合来做这个事情,那么这可能会造成巨大的资源浪费。

+0

1)我的意思是我从数据库中获取所有条目,其中favorite_color匹配*黑色*。 2)问题是,如果像这样的东西存储为key =>值,或者这是开始挖掘列表/散列/集合的很好的一点。如果是这样,哪一个适合该用例的最佳选择。 但是,至少感谢! :) – Krenor

+0

是的,很多这将是通用和意见的基础,因为我们都不会知道您的应用程序。我会说你需要用foo来担心什么:123:黑色是命名冲突(其他任何人都有名字foo:123:黑色?黑色是否足够独特?),除此之外,取决于你选择一个名字。不要在预优化上花费太多精力,做一些自然而然的事情,然后优化它是否使用了太多的内存,CPU,时间等。 – Devon

相关问题