著者:中国石シャン
インタビューの質問
競争のRedisで何を複雑にしていますか?どのようにこの問題を解決するには?CASは、業務プログラムが行うRedisの学ぶのか?
心理学的分析インタビュアー
このラインは、非常に一般的な問題はマルチクライアントの同時書き込みキーでもあるの後、おそらく最初のデータの間違ったバージョンにつながる、データに来ているはずです。あるいは、複数のクライアントが同時にキーを取得して、後に値を変更します順序が間違っている、間違ったデータである限り、ライトバック。
楽観的ロック・スキームをRedisのと、この問題のCASクラスに、独自の自然な解決策を持っています。
フェイス質問解析
ある時点で、複数のシステムのインスタンスは、キーを更新します。分散ロックは、飼育係基づいて達成することができます。飼育係分散ロックが取得した各システムは、オペレーティング・システムのキーの唯一のインスタンスを、同じ時間を確保するために、他の人が読み書きすることはできません。
あなたは、キャッシュされたデータを記述する必要がmysqlのから発見され、mysqlは書かなければならなかった、書き込み時間のMySQLはタイムスタンプに保存する必要があり、MySQLの時間をチェックアウトし、また、タイムスタンプをチェックしてください。
各書き込みの前に、最初のタイムスタンプの現在の値がキャッシュの値のタイムスタンプよりも新しいものを決定。もしそうなら、あなたが書くことができ、そうでない場合は、古いデータが新しいデータをカバーするために使用することはできません。