KSUID ジェネレーター
ガイド
KSUID ジェネレーター
KSUID(K-Sortable Unique Identifiers)を生成するか、既存のKSUIDをデコードして埋め込まれたタイムスタンプとランダムペイロードを抽出します。KSUIDは、4バイトのUnixタイムスタンプと16バイトのランダムデータを組み合わせた、27文字のBase62文字列で、作成時間によって辞書順にソート可能です。
使い方
生成する数を1〜10に設定して複数のKSUIDを一度に生成するか、デコードフィールドに既存のKSUIDを貼り付けてタイムスタンプ、Unixエポック、およびランダムコンポーネントを抽出します。生成されたKSUIDは個別にコピーできます。
特徴
- バッチ生成 – 一度に1〜10個のKSUIDを生成
- KSUIDデコーダー – 任意のKSUIDからタイムスタンプ、エポック、ランダムバイトを抽出
- 暗号学的に安全 – ランダムコンポーネントの使用法
crypto.getRandomValues() - – 27文字のBase62出力 – URLセーフ、特殊文字なし
- 辞書順ソート可能性 – KSUIDは文字列として時系列順にソートされます
- クライアントサイドのみ – すべての生成はローカルで行われます
よくある質問
-
KSUIDとは何ですか?UUIDとどう違いますか?
KSUID(K-Sortable Unique IDentifier)は、4バイトのUnixタイムスタンププレフィックスと16バイトのランダムデータで構成される20バイトの識別子で、27文字のBase62文字列としてエンコードされます。完全にランダムでソート不可能なUUID v4とは異なり、KSUIDは作成順に辞書順でソートされるため、データベースの主キーとして、タイムベースの順序が必要でありながら個別のタイムスタンプ列を必要としない場合に便利です。UUID v7は、時間順のUUIDも提供する新しい標準です。
-
データベースIDにオートインクリメント整数ではなくKSUIDを使用する理由
オートインクリメント整数はレコード数を公開し、分散システム間での移植性がなく、中央集権的なシーケンス生成が必要です。KSUIDは、調整なしでグローバルに一意であり、作成時間を埋め込み、時系列順にソートされ、ビジネス指標を明らかにすることなくURLで公開しても安全です。トレードオフとして、ストレージが大きくなり(整数では4〜8バイトに対し20バイト)、ランダムな上位バイトが完全な順次挿入を妨げるため、インデックス操作がわずかに遅くなります。
-
Base62エンコーディングとは何ですか?KSUIDはなぜそれを使用しますか?
Base62は、数字0〜9と文字A〜Zおよびa〜z(合計62文字)を使用します。Base64とは異なり、特殊文字(+、/、=)がないため、エンコーディングなしでURL、ファイル名、文字列比較に安全に使用できます。KSUIDがBase62を使用するのは、結果の27文字の文字列が、基になる20バイトのバイナリと同じ順序で辞書順にソートされるためです。これは、文字列比較で時間順プロパティが正しく機能するために不可欠です。
-
KSUIDのタイムスタンプの精度はどのくらいですか?
KSUIDのタイムスタンプは1秒の精度を持ち、カスタムエポック(2014年5月13日 00:00:00 UTC)からの秒数を表す4バイトの符号なし整数を使用します。このエポックは、2150年までタイムスタンプがオーバーフローしないように選択されました。16バイトのランダムコンポーネントにより、複数のマシンで同じ秒内に複数のKSUIDが生成された場合でも一意性が保証され、衝突の可能性は天文学的に低くなります。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
