首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >数据库 ID 生成方案:Redis

数据库 ID 生成方案:Redis

作者头像
happyJared
发布于 2019-12-02 21:38:38
发布于 2019-12-02 21:38:38
1.1K0
举报
文章被收录于专栏:happyJaredhappyJared

使用 Redis 来生成分布式 ID,其实和利用 Mysql 自增 ID 类似,可以利用 Redis 中的 incr 命令来实现原子性的自增与返回,比如:

代码语言:javascript
复制
127.0.0.1:6379> set id 1   // 初始化自增 ID 为1
OK
127.0.0.1:6379> incr id   // 增加1,并返回
(integer) 2
127.0.0.1:6379> incr id   // 增加1,并返回
(integer) 3

使用 redis 的效率是非常高的,但是要考虑持久化的问题。Redis 支持 RDB 和 AOF 两种持久化的方式。

RDB 持久化相当于定时打一个快照进行持久化,如果打完快照后,连续自增了几次,还没来得及做下一次快照持久化,这个时候 Redis 挂掉了,重启 Redis 后会出现 ID 重复。

AOF 持久化相当于对每条写命令进行持久化,如果 Redis 挂掉了,不会出现 ID 重复的现象,但是会由于 incr 命令过多,导致重启恢复数据时间过长。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档