Redis INCR 和多进程?

标签 redis

我曾经使用 PostgreSQL 序列 SELECT nextval('number'); 来确保我得到一个新号码,即使有多个客户端也是如此,因为 nextval 保证返回不同且递增的值。

我想对 Redis 使用相同的机制。 我想使用 INCR 命令,但我想确保我很好地理解它会提供与 nextval 命令相同的保证? 当多个进程运行此命令或我必须使用 Redis 锁时,是否没有获得相同数字的风险?

谢谢

最佳答案

Redis是单线程引擎,所以所有命令的执行都是序列化的。它始终为每个单独的命令提供原子性和隔离(在 ACID 的意义上)。

结果是应用单个 INCR 命令并利用其结果是安全的(即使多个连接同时执行)。

关于Redis INCR 和多进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26441410/

相关文章:

java - 无法从运行@myIpaddress :6379 的哨兵获取主地址

php - 多个元素的 llen

Redis 在 SET 中回车或换行

Redis - 从排序集中一次获取 5 个元素

php - 在 redis 中缓存唯一的电子邮件

database - Redis Pub/Sub 和 Redis Stream 之间的主要区别是什么?

session - Node.js:无法在 Redis pubsub 事件中更新 session ?

node.js - 带有redis服务器的nod​​e.js中未定义的空错误?

redis - 调整 Airflow 的 celery 可见性超时

redis 中的 PHP session 不起作用