根据redis文档: https://redis.io/commands/sadd
自1.0.0起可用。 时间复杂度:O(1)为每个元素添加,所以O(N)添加N. 使用多个参数调用命令时的元素。
自1.0.0起可用。
时间复杂度:O(1)为每个元素添加,所以O(N)添加N. 使用多个参数调用命令时的元素。
SADD非常高效,并且不依赖于redis键的当前大小,你无法改善这种性能(通过建模/更改查询......),它已经是最好的了!
它意味着只有网络(主要是redis和你的服务器之间的ping时间,你可以测量它)和N的大小很重要(主要是因为网络带宽的使用)。
Redis是单线程的,因此一次只处理一个SADD,你需要非常大的插入(插入大量元素,我觉得10k看起来不那么令人印象深刻)来减慢redis。在大多数情况下,你更担心redis上的内存不足(你应该监督)。
这些参数仅取决于您的基础架构质量,这应该很好(或者您可以通过更改云提供商上的服务器/ vpc来轻松改进它)。
如果您真的担心网络上有效负载的大小,您可以使用lua脚本执行SADD命令并在调用redis之前压缩有效负载并在脚本内解压缩,这样可以减少网络负载。
为了可靠性,如果第一个SADD由于某种原因失败(例如,参见断路器模式),最好使用某种自动重试过程来进行重新设置。