首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis LRANGE原子性

Redis LRANGE原子性
EN

Stack Overflow用户
提问于 2021-04-04 03:17:54
回答 1查看 143关注 0票数 0

我有一个redis数据存储,其中存储了唯一的密钥。现在,我的应用服务器将向redis发送多个请求,以从start获取大约100个密钥,我正计划使用LRANGE命令来实现同样的目的。

但我的要求是,每个请求都应该接收唯一的键集,这意味着如果一个请求对100个键使用redis,那么这些键将永远不会返回给未来的任何请求。

正如我所看到的,redis的操作是原子的,所以我可以假设如果同时有多个来自应用服务器的请求到redis,因为redis是单线程的,所以它将执行LRANGE mylist 0 100,一旦它完成(意味着一旦100个键被获取并从列表中删除),那么只有下一个请求将被处理,所以原子性是内置的,对吗?在任何情况下,两个请求都可以获得相同的100个密钥,这是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-04 05:19:57

听起来您真正想要的命令是LPOP,因为LRANGE不会从列表中删除任何内容。

代码语言:javascript
复制
LPOP mylist 101

是的,这个命令是原子的,所以不会有两个客户端接收相同的元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66935016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档