如何在laravel中使用带有哈希存储的redis?

时间:2016-03-03 02:14:23

标签: laravel redis

我使用了laravel的默认Redis :: set()函数来存储项目,但我有13k记录,内存使用量约为400mb。现在我正在寻找降低它的方法。我注意到laravel将数据存储为字符串,而不是浪费资源的哈希。 如何通过laravel使用Redis和hash?

1 个答案:

答案 0 :(得分:2)

在官方Laravel Redis Facade中,它说

  

Redis外观支持动态方法,这意味着您可以在外观上调用任何Redis命令,命令将直接传递给Redis

所以我想你可以使用

Redis::hSet('h', 'key1', 'hello');
$value = Redis::hGet('h', 'key1');

但我真的怀疑你会大幅减少你的内存使用量,除非你有很长的密钥名称。 相反,你可以:

  • 如果可以考虑在您的密钥上执行EXPIRE
  • 您还可以压缩键值:例如,如果它在json中编码,您可以使用msgpack声称编码/解码的1/3更小更快,否则您可以gz压缩您的内容,如此post
  • 中的解释
  • 您可以使用像this one这样的Redis内存分析器来搜索潜在问题

如果您进行测试,请告诉我们您的结果,这可能很有趣。