redis auto increment id作为唯一键可以吗?

j9per5c4  于 2021-06-08  发布在  Redis
关注(0)|答案(2)|浏览(400)

我想在我的应用程序中生成一个唯一的id。使用redis auto increment id可以吗?即使在集群中,它也是唯一的id吗?

z18hc3ub

z18hc3ub1#

redis可以基于incr命令生成id,但可能不是一个好的解决方案。
由于redis不保证acid for update(incr),当redis重新启动故障转移时,它可能会失去一致性。rdb和aof都以异步方式进行持久化,数据可能会丢失。对于id生成器,它可能在重启(或在集群/sentinel中进行故障转移)后生成重复的id。
在您的情况下,如果您不关心这个场景,或者您认为手动恢复是可以接受的,那么您可以使用redis作为生成器,因为它对于大多数情况来说足够快(与mysql或其他数据库相比)。
或者还有一些有用的身份生成算法,如snowflake算法,可以保证全局增量,不存在重复。

q0qdq0h2

q0qdq0h22#

是的,正如incr文件所述,这是一种原子操作,因此提供了这种保证

相关问题