データベースID生成方式:Redis

577 ワード

Redisを使用して分散IDを生成するのは、Mysqlの自己増加IDと同様に、Redisのincrコマンドを使用して原子的な自己増加と戻りを実現することができます.例えば、次のようになります.
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の2つの永続化方式をサポートする.
RDBの永続化はタイミングで1つのスナップショットを打って永続化することに相当し、スナップショットを打った後、連続して何度も増加した場合、まだ次のスナップショットの永続化をする時間がなく、この時Redisが切られ、Redisを再起動するとIDが重複する.
AOF永続化は書き込みコマンドごとの永続化に相当し、Redisが切れていればIDが重複することはありませんが、incrコマンドが多すぎるため、リカバリデータの再起動に時間がかかりすぎます.