gpt4 book ai didi

redis - 为什么 Redis SET 性能优于 GET?

转载 作者:IT王子 更新时间:2023-10-29 05:55:22 25 4
gpt4 key购买 nike

根据Redis benchmark s ,Redis 可以执行 100'000 SET 操作/s,和 80'000 GET 操作/s。 Redis 是一个内存数据库,这似乎令人惊讶,因为通常人们会期望内存写入比读取慢一些,例如考虑到 SET 需要在能够写入值之前分配内存。

有人能解释一下为什么 SET 比 GET 快吗?

最佳答案

实际上这只是默认情况下测量的 I/O 多于实际命令执行时间的结果。如果您开始在基准测试中启用流水线,它会更多地衡量实际命令性能,并且数字会发生变化:

$ redis-benchmark -q -n 1000000 -P 32 set foo bar
set foo bar: 338964.03
$ redis-benchmark -q -n 1000000 -P 32 get foo
get foo: 432713.09 requests per second

现在 GET 更快了:-)

我们应该在我们的基准文档页面中包含流水线。

编辑:这在这里更加明显:

redis 127.0.0.1:6379> info commandstats
# Commandstats
cmdstat_get:calls=1001568,usec=221845,usec_per_call=0.22
cmdstat_set:calls=831104,usec=498235,usec_per_call=0.60

此命令提供 CPU 时间在内部处理请求,而不考虑 I/O。 SET 的处理速度慢了三倍。

关于redis - 为什么 Redis SET 性能优于 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14600908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com