【发布时间】:2020-03-21 12:16:02
【问题描述】:
我对 Redis 文档中关于 SETRANGE 命令的一句话感到困惑。
当设置最后一个可能的字节并且key中存储的字符串值还没有保存字符串值,或者保存的字符串值很小时,Redis需要分配所有中间内存,这会阻塞服务器一段时间。
这是否意味着:当Redis为最后一个字节分配内存时,Redis会检查不忙的内存可以分配到哪里,这样命令会阻塞一段时间?
【问题讨论】:
标签: redis
我对 Redis 文档中关于 SETRANGE 命令的一句话感到困惑。
当设置最后一个可能的字节并且key中存储的字符串值还没有保存字符串值,或者保存的字符串值很小时,Redis需要分配所有中间内存,这会阻塞服务器一段时间。
这是否意味着:当Redis为最后一个字节分配内存时,Redis会检查不忙的内存可以分配到哪里,这样命令会阻塞一段时间?
【问题讨论】:
标签: redis
分配大量内存很慢。由于 Redis 服务器是单线程的,这意味着该命令可能会阻塞整个服务器一段时间(可能是很长一段时间),直到内存可用。
这种性能对于 Redis 命令来说是不寻常的——而且不是时间复杂度(大 O 表示法)可以捕捉到的东西——所以文档给你一个警告。
【讨论】: