猿问

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

我最近将Redis实施到了我的Laravel项目之一。我想了解它的功能,目前,它更多的是技术性的而不是生产性的。

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

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

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

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

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

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

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

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

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

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


沧海一幻觉
浏览 210回答 2
2回答

波斯汪

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

精慕HU

在我看来:首先:如您所知,Redis快速发展,Redis确实非常快。由于Redis数据始终在内存中,因此您说读取11MB的使用11s数据,则可以检查带宽其次:对不起,我不知道如何增加这个环境。第三:我认为您的选择还可以。因此,您可以先检查带宽(redis服务器)。
随时随地看视频慕课网APP
我要回答