redis性能问题

eri*_*n c 2 c++ boost redis

我试图在debian环境中通过c ++客户端使用redis来存储大的字符串列表(每个列表近200万个字符串).我曾经使用boost库的无序集来处理这个问题,但是由于我必须定期将每个列表保存到文件系统中,并且我得到了大量的更新和删除而不是开发我的数据库系统,所以我想重新开始.

我的redis配置没有任何定期保存,我计划在更新完成时手动保存内存中的所有更改.但出于测试目的,我甚至没有执行保存到磁盘.我的测试应用程序执行200万次写入,接近100秒.这是纯粹的内存操作,因为我没有执行任何快照操作(我将配置设置为根本不保存)

如果我使用无序设置执行相同的200万次插入,则需要接近5秒.互联网上的每个技术网站都说,redis速度非常快,但在我的情况下,即使没有IO,它也比boost的无序设置快50倍,为什么会这样呢?我忽略了一些明显的东西吗?

Did*_*zia 5

您可能需要阅读Redis基准页面

Redis对远程存储非常有效.

您正在尝试将本地存储(boost :: unordered_set)与远程存储(Redis)进行比较.与执行往返Redis的往返成本相比,在内存中维护集合的成本可以忽略不计.如果您的Redis实例托管在同一个框中,也是如此.任何IPC都比哈希表查找更昂贵.