Redis LRANGE Pop 原子性
Redis LRANGE Pop Atomicity
我有一个 redis 数据存储,其中存储了唯一的键。现在我的应用程序服务器将向 redis 发送多个请求以从一开始就获取大约 100 个密钥,我打算使用 LRANGE 命令来完成相同的操作。
但我的要求是每个请求都应该收到一组唯一的密钥,这意味着如果一个请求进入 redis 获取 100 个密钥,那么这些密钥将永远不会返回给未来的任何请求。
正如我看到的那样,redis 操作是原子的,所以我可以假设如果应用服务器同时向 redis 发出多个请求,因为 redis 是单线程的,所以它会执行 LRANGE mylist 0 100
一次它完成了(意味着一旦 100 个键被取出并从列表中删除),只有下一个请求才会被处理,所以原子性是内置的,它是正确的吗?
有没有可能在任何情况下两个请求可以获得相同的 100 个密钥?
我有一个 redis 数据存储,其中存储了唯一的键。现在我的应用程序服务器将向 redis 发送多个请求以从一开始就获取大约 100 个密钥,我打算使用 LRANGE 命令来完成相同的操作。
但我的要求是每个请求都应该收到一组唯一的密钥,这意味着如果一个请求进入 redis 获取 100 个密钥,那么这些密钥将永远不会返回给未来的任何请求。
正如我看到的那样,redis 操作是原子的,所以我可以假设如果应用服务器同时向 redis 发出多个请求,因为 redis 是单线程的,所以它会执行 LRANGE mylist 0 100
一次它完成了(意味着一旦 100 个键被取出并从列表中删除),只有下一个请求才会被处理,所以原子性是内置的,它是正确的吗?
有没有可能在任何情况下两个请求可以获得相同的 100 个密钥?