冪等の制御機構
データベースの冪等
のクエリのクエリ数回に一度は、同じデータの場合には、クエリ結果は同じです。自然のパワーと他の操作を選択する
操作の削除2.
データが削除されている1つのまたは何回も、削除冪等を削除し、削除します。(注削除されたデータ複数の戻り結果は、より多くの、0を返し、存在しないデータを削除し、結果は同じではありません返すことがあります。)
3.一意のインデックスは、新しいダーティデータを防止する
ような:Alipayの資本勘定を、アリペイは、ユーザーアカウントを持っています、各ユーザーは唯一のファンドの口座を持つことができ、テーブルのユーザーIDを加えたユニークなインデックスの資本勘定に、その後、複数のファンドのアカウントを作成するには、ユーザーを防ぐために、どのようにユーザーが成功した資本勘定のレコードを追加します
4.悲観的ロック
取得したデータを取得するロック
* ID =「table_xxxから選択し 、更新のためXXX」
idフィールドが一意の主キーまたはインデックス、またはロック・テーブルである必要があり、死んでいるだろう注:
一般的に伴う取引を悲観的ロックを使用する場合一緒に使用され、データのロック時間は、実際の状況の選択に応じて、非常に長くなること
5.ロック楽観
データテーブルロックロックに、テーブルロック以外の時間ではないので、悲観的な相対的な、高効率の更新の瞬間にのみロック楽観的。
違いは何ですかActiveMQのとRabbitMQのは、どのようなビジネスシナリオのRabbitMQは、メッセージキューを選択する方法であります
Redisのデータ構造は、ハッシュのハッシュマップのキー記憶構造は、クラスタに格納されています
HTTP冪等
べき等は言った:一度サーバーを要求したり、数回、返された結果は、[選択]と同じです通常要求をGET
非冪等で表される:要求の数の異なるサーバー、返された結果は、[更新、削除]異なるであろう一般POSTリクエストであります
差のsvnとgitのは何ですか
2間のワークフローのコントラスト:
SVNモード
- コードを記述します。
- サーバーからバック、サーバーの現在のリポジトリ、およびローカルコードとの競合を解決するために、リポジトリサーバへ。
- ネイティブコードは、サーバーに送信します。
gitのモード
- コードを記述します。
- ローカルリポジトリに提出。
- サーバーからバック、サーバーの現在のリポジトリ、およびローカルコードとの競合を解決するために、リポジトリサーバへ。
- リモートデータベースとローカルコードに結果を提出ローカルリポジトリをマージします。
- ローカルリポジトリサーバにプッシュします。
コントラストは見ることができます:分散型バージョン管理は、ローカルライブラリの概念が増加しており、残りは全く異なるコンセプトと集中管理ではありません。 - それは、より簡単にローカルの問題を修正し、前のsvnサーバの同期コードを提出することはできません。
1。SVNの長所と短所
長所:
1、一般的な思考の習慣に沿って簡単に管理、明確なロジック、。
2、管理が容易で、中央サーバは、より高いセキュリティを確保します。
図3は、コードの整合性は非常に高いです。
4、プロジェクト開発の数が少ないの開発のため。
短所:
1、サーバー過剰な圧力、データベース容量サージ。
2サーバーに接続されていない場合は、基本的にあなたが働くことができない、サーバーが接続できない場合は、上記の第二のステップを参照して、削減、コントラストなどを提出することはできません。
図3は、(非常に、非常に多くの発展途上の数が、Googleアプリのエンジンは、SVNを使用することです)、オープンソース開発には適していません。しかし、(例えば分岐アクセス制限など)非常に明確な著作権管理の仕組み、一般的に集中管理がある開発問題の多数に良い解決策ように、階層管理を実現することができます。
長所:
1、分散開発に適した、個々の重視。
2、世論の圧力とデータの量は、サーバーが大きすぎることはありません。
3、迅速、かつ柔軟。
図4は、簡単に二人の開発者の間で矛盾を解決することができます。
5、オフラインで作業。
短所:
1、学習曲線が比較的長いです。
2、型破りな思考。
3、貧しいセキュリティコード、すべてのコードとバージョン情報の全面開示にダウン開発したら、全体のライブラリークローン。
データベースの一般的なデータ型、float型、ダブル違い何、10進浮動小数点精度の問題解決
1.整数:
「ビット(論理値):のみtrueまたはfalseを入力し、入力を自動的にTRUEに変換され、0は自動的にFALSEに変換され
TINYINT:のみ整数0から225までは、
(2つのバイトがsmallint整数): - 32767 32768〜
4バイトのint型(整数):2の31乗
BIGINT(8バイトの整数である):2 63乗
:2通貨
お金、可能4小数
3.日付タイプ:
データ:2001年1月1日〜9999.12.31
datatime:1753年1月1日〜9999.12.31
時間:より正確に
4文字:
CHAR(8000):固定長、8000の最大値。例えばCHAR(10)は10文字、5つの文字を保存することができる
(4000)NCHAR:安定した、4000は最大です。例NCHAR(10)が10文字、10個の文字に保存することができます
VARCHAR(8000):長くなります。入力5は一例にはvarchar(10)は、CHAR(10)である場合、入力5は、唯一、5を占めた場合にのみ、
残りの5ビットはゼロで埋め。
NVARCHAR(4000):可変長
フロート:単精度浮動小数点
ダブル:倍精度浮動
次のように主な違いは次のとおり
メモリ01に占めるバイトの異なる数
シングルフロートをローカルメモリに4つのバイトを
占め倍精度マシンメモリ8バイトの
異なる有効数字02
単精度浮動小数点数8有効ビット
倍精度浮動小数点16ビットの有効数字が
03の数値範囲は、
単精度浮動小数点の範囲を表し:-3.40Eを+ 38〜3.40E +図38は、
倍精度浮動小数点の範囲を表す:-1.79E -1.79E + 308 + 308〜
プログラムの処理速度の04が異なる
一般的に、単精度のCPU速度処理がより早くよりポイント倍精度浮動小数点浮動
ない宣言する場合あなたはfloatを使用している場合、デフォルトの小数点のdouble型は、それが強いターンでなければなりません
javaの提供BigDecimalクラスを使用します。java.math.BigDecimalのカプセル化されたような
このような構成には多くあるが、コンピューティングデバイスの浮動小数点型を使用するときに文字列インスタンスのBigDecimalオブジェクトを使用するように構成されなければなりません
InnoDBのMYISAM、B +木ストレージ構造、B木のMySQLの屈折率差
2つのエンジンは、B +ツリーインデックスデータ構造として使用されています
違い:
図1は、InnoDBは主キーを持たなければならないだけでなく、クラスタ化インデックス、INNODBデータファイル自体がインデックスファイルであり、MYISAMアドレスデータに格納されます。
図2に示すように、二次インデックスINNODB、アドレス格納されているプライマリ・キー、セカンダリインデックスの検索時間だけでなく、主キーの主キーの最初の関連付け(それは主キーの長さではないが推奨されるが、通常、自動増分数にして、あまりにも大きく設定されています)クエリ、および主キー索引MYISAMの支援は違い、単にユニークなプライマリキーが存在しない、それはユニークセカンダリインデックスではありません。
3、INNODBサポート取引、MYISAMがトランザクションをサポートしていません。
4、INNODBの行ロック、MyISAMテーブルロックされています
シナリオ、そして楽観と悲観的ロックの実装
GCとは何ですか
TCP 3ウェイハンドシェイク、httpリクエストプロセス
どのような一般の下でどのようなシナリオでは、デザインパターンを使用しています
アルゴリズムの一般的な時間複雑
rdiaの永続性
Redisのキャッシュ・コヒーレンシ
仮想記憶
プロセスの分離
データベースの分離レベル
ジャワの一般的な原理(のArrayList <ストリング>とのArrayList <整数>)
パラメータタイプの一般的な性質、操作されているデータ・タイプは、パラメータとして指定されています。このパラメータの種類は、一般的なメソッドが呼び出され、クラス、インターフェイスやメソッド、ジェネリッククラス、一般的なインターフェースの作成に使用することができます。
キャストは、追加のチェック型層を得ながら、層は、チェックがコレクションに格納されたキーまたは値の間違ったタイプであっ防止することができ、一般的なコードを排除することができます。これが行われ、一般的な仕事です。