Redis-最佳的数据结构,用于存储然后获取大数据

时间:2019-05-04 12:19:07

标签: php laravel redis

我最近在我的Laravel项目之一中实现了Redis。我想了解它的功能,目前,它更多的是技术性的工作,而不是生产性的。

我所做的是创建了一个付款交易列表。我要推送到列表的是每次处理交易时从Webhook接收的有效负载。有效负载本质上是一个对象,其中包含与该特定事务有关的所有信息。

我创建了一个VueJS前端,该前端然后在表中显示所有数据并具有分页功能,因此一次显示10行。

起初这是超级快速的工作,但是现在列表包含30,000行,相当于11MB的数据,请求大约需要11秒。

我认为这里的问题是我正在使用列表,并且正在使用LRANGE提取列表中的所有行。

我使用列表的原因是因为它具有LPUSH命令,以便最新事务进入列表的开头。

我决定进行测试,从列表中获取所有数据,然后将值输出到空白页,这花费了大约相同的时间,因此对于Vue,Axios等而言,这不是问题。

正确,此读取速度正常吗?我一直都听说Redis在快速发展。

第二,使用Redis时是否有更好的方法来提高读取性能?

第三,我使用的数据类型错误吗?

我需要及时存储100万行数据。

2 个答案:

答案 0 :(得分:0)

我意识到您可以在任何交易更新中获得所有30,000行,然后在前端对其进行分页。我认为,真正的策略是在每个请求中获取更轻量的数据包。 例如,使用Laravel分页来响应您的请求。

答案 1 :(得分:-1)

我认为:

  • 首先:如您所知,Redis快速发展,Redis确实非常快。由于Redis数据始终存储在内存中,因此您说要读取有关11s的11MB数据,因此可以检查带宽
  • 第二:很抱歉,我不知道如何增加这个环境。
  • 第三:我认为您的选择还可以。

因此,您可以先检查带宽(redis服务器)。