我有简单的 redis 列表键 => "supplier_id"
现在我只希望它检索列表的所有值而不实际迭代或从列表中弹出值
从列表中检索所有值的示例现在我已经迭代了 redis 长度
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
这可以在没有迭代的情况下通过更好的 redis 建模来完成吗?谁能建议
我有简单的 redis 列表键 => "supplier_id"
现在我只希望它检索列表的所有值而不实际迭代或从列表中弹出值
从列表中检索所有值的示例现在我已经迭代了 redis 长度
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
这可以在没有迭代的情况下通过更好的 redis 建模来完成吗?谁能建议
要使用 Redis 检索列表的所有项目,您不需要迭代和获取每个单独的项目。这将是非常低效的。
您只需使用LRANGE命令一次性检索所有项目。
elements = redis.lrange( "supplier_id", 0, -1 )
将返回列表中的所有项目而不更改列表本身。
我对你的问题有点不清楚,但如果供应商 ID 是数字,为什么不使用 a ZSET
?
像这样添加您的值:
ZADD suppliers 1 "data for supplier 1"
ZADD suppliers 2 "data for supplier 2"
ZADD suppliers 3 "data for supplier 3"
然后,您可以像这样删除所有内容(但不包括供应商三):
ZREMRANGEBYSCORE suppliers -inf 2
或者
ZREMRANGEBYSCORE suppliers -inf (3
如果您只想从中读取,这也使您可以非常快速地访问(通过供应商 ID)。
希望有帮助!