検索

ホームページ  >  に質問  >  本文

redis中如何保持关系数据库里的一行记录

要将关系数据库中表的一行记录保持到redis中,在redis里要采用哪种数据类型,怎么保存?希望能举个具体示例

高洛峰高洛峰2795日前621

全員に返信(4)返信します

  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:12:58

    Java オブジェクトをシリアル化し、バイト配列として保存します

    返事
    0
  • PHP中文网

    PHP中文网2017-04-24 09:12:58

    コンテンツの場合は、データベースの主キーを Redis として直接使用できます。例えば、データテーブルに json を直接記録できます<YOUR_PREFIX><PRIMARY_KEY>

    次に一貫性の問題があります

    • 最初の解決策は、主キーに従ってレコードを読み取るときに、まず redis にレコードがあるかどうかを確認し (get)、データベースからレコードを取得し、対応する値を redis に設定します。設定時にレコードの有効期限を設定することをお勧めします。これにより、ダーティ データがアクティブに消去されない場合でも、一定期間後に有効期限メカニズムを通じて新しい値が自動的に取得されます。データテーブルのレコードが変更された場合は、redis 内のレコードを直接削除するだけです。これは私がお勧めするより安全なアプローチです。

    • 2 番目のオプションは、すべてのデータの読み取りと書き込みを Redis で直接処理し、特定の時間にのみデータをデータベースに書き戻すことです。ライトバック メカニズムに関しては、Redis が変更されるたびにメッセージ キューを使用してデータを非同期に書き戻すことを検討できます。タイムスタンプを使用してデータベースに書き戻されるデータが最新であることを確認するか、Redis の通知を使用することを検討できます。期限切れタイミングのメカニズム (ただし、このメカニズムは保証されていません。http://redis.io/topics/notifications を参照してください)。

    • 返事
      0
  • 怪我咯

    怪我咯2017-04-24 09:12:58

    これはかなり面倒です
    こちらの記事を参考にしてください
    http://www.cnblogs.com/enjiex/p/3618546.html

    簡単な追加、削除、変更、クエリをサポートし、redisトランザクションと組み合わせて簡単な機能を実装できます
    しかし、rdbmsの基本的なSQL操作を実装するのは非常に面倒です

    要約すると

    返事
    0
  • PHP中文网

    PHP中文网2017-04-24 09:12:58

    マニュアルを素直に読んでください。マニュアルは非常にわかりやすく説明しています。実際の段階では、カプセル化されたサードパーティ API がいくつかあります。実際、ソケットから書き始めると、プロトコル、言語、ネットワークについて新たに理解できるようになります

    返事
    0
  • キャンセル返事