Redisの一般的に使用されるコマンドと使用シナリオ

文字
文字列セットキー値
    取得キー

リスト
リストlpushキー値
リストrpushキー値
   lrangeキー0 10

Weibo公式アカウントの購読メッセージプッシュを実装する


セットする


sadd キー値smembersキーは、セット
sismemberキー「1」のすべての値を返します。キーに特定の1が存在するかどうかを判別し、存在する場合は1を返します。それ以外の場合は0を返します


   sunion sadd keyが2つのセットsmembersキーをマージ 

sremキー値は、コレクション内の値を削除します

scardキーはコレクション内の数を返します

高評価とコレクションを実現します。ラベル

注意モデルを実装する

sinter key1 key2は、2つのコレクションの共通部分を返します

sdiff key1 key2によって返される差分セット

ハッシュhmset myhash field1 value1 field2 value2
   hmget myhash field1
zaddキースコアメンバー


del key コマンドは、特定のキーを削除します。dumpkeyは
、特定のキー
存在キーをシリアル化して、特定のキーが存在するかどうかを判断します。expireキー
有効期限を秒単位で
設定しますExpireat key tomestamp有効期限を設定しますが、Unixタイムスタンプ
pexpireキーは有効期限を設定します。
有効期限設定するためのミリ秒単位のPexpireatキーUnixミリ秒単位の
キーパターン、複合指定パターンのすべてのキーを検索
するmove key db現在のデータベースキーを指定データベースdb
永続キーに移動するキー有効期限を削除し、保存する永続的な
pttlキーの場合、キーの残りの有効期限をミリ秒で返します。Ttlキーは、指定されたキーの残りの存続
時間(TTL、存続時間)を秒で
返しますランダムキーは、現在のデータベースからランダムにキーを返します
キーの名前をnew_nameに変更しますName '
renamenx key newkey newkeyが存在しない場合にのみ、名前をnewkey
タイプのキーに変更し、キーに保存されている
   
   
saveまたはbgsave を返します。  データの保存
config config requirepass password set password
auth password authorized password 
config get requirepass


必ずしも成功するとは限りません。
マルチを使用してトランザクション
execを開き、トランザクションを送信することはお勧めしません

Redisパーティション
1:範囲パーティション
は、特定の範囲のオブジェクトの特定のredisインスタンスにマップします。
この方法は実行可能であり、実際に使用されます。欠点は、間隔の範囲からインスタンスへのマッピングテーブルがあることです。このテーブルは管理する必要があります。同時に、さまざまなオブジェクトのマッピングテーブルも必要です。Rongchangはredis
2に適した方法ではありません。ハッシュパーティション
ハッシュパーティションは、任意のキーに適用可能で、オブジェクトなし——name このフォーム
は、ハッシュ関数を使用してキーを作成します数値に変換します。たとえば、crc32ハッシュ関数を使用し、キーで関数crc32を実行して93024922のような整数を出力し、
この数値を法として0〜3の数値に変換します。この整数を4つのredisインスタンスにマッピングできます。それらの1つである93024922%4 = 2は、キーがR2インスタンスに格納され、剰余演算が剰余演算であることを意味します


Redisはデータの一貫性を維持します
1.定期的な完全更新、
すべてのキャッシュの削除、再読み込み2.すべてのキャッシュに有効期限を与えます
3.キャッシュの削除を再試行します。データの一貫性の要件が高いほど、更新する必要があります

同時実行性が高くない
場合は、読み取りを行います。そうでない場合は、データベースをクエリし、SQLから返されたデータをredisに
書き込み、キャッシュが利用可能な場合はキャッシュから直接読み取ります。最初にsqlを書き込み、書き込み後にredisを書き込みます。

同時実行性が高いです。
読み取り:通常の戻りがある場合はredisを読み取り、そうでない場合はデータベースを読み取ります。データベースはredisへの書き込みに戻ります。redisからの読み取りと
書き込みがある場合:最初に非同期、最初にredisへの書き込み。直接戻って、定期的にデータベースに書き込みます。複数の更新を実行して、一度書き込むことができます


クエリのみがキャッシュを更新します。

期限切れのキャッシュを定期的にクリーンアップする:欠点は、大量のキャッシュが期限切れになるかどうかを維持する必要があることです。

クライアントが来るように要求したとき、最初にこの要求に使用されたキャッシュが期限切れかどうかを判断します。期限が切れた場合は、基盤となるシステムに移動してデータを取得し、キャッシュを更新します。欠点は、来るたびに期限が切れるかどうかを判断することであり、ビジネスロジックはより複雑です。


ペネトレーション:存在しないデータを頻繁にクエリします。キャッシュにデータがないため、データベース
ソリューションを毎回クエリする必要があります。データベースがクエリされない場合、空の結果がキャッシュされます。クエリは、最初にキャッシュをクエリすることです。帰国後、

雪崩:キャッシュエラーが多数発生すると、多数のクエリデータベース
がキャッシュクエリをロックします。キーが存在しない場合は、キーをロックしてからデータベースクエリしてキャッシュし、ロックを解除します。他のロックが見つかった場合は、ロックを解除してデータが返されるまで待機するか、データベースクエリとその他の次の操作を入力します

Redisは基本的にキー値メモリデータベースです。memcachedを使用します。データベース全体がメモリに読み込まれ、データは1ステップの操作でディスクにフラッシュされて保存されます。メモリ操作のため、速度は比較的速く、100,000以上に達する可能性があります。
多くのデータ形式がサポートされており、単一の値の最大値は1Gです。

Redisにはmemcachedに勝る利点があり
ます。1.はるかに高速です
。2.より多くのデータ形式をサポートします。3
. データを保持できます



redisはメモリに配置されていない場合、高速でデータをフォーマットするという特性があるため、redisがメモリで最速の読み取りおよび書き込み速度達成し、データをメモリに読み取り、データを非同期でディスクに書き込む理由、ディスクI / Oはredisのパフォーマンスに影響します


Redisクラスターソリューションによってクラスター全体が使用できなくなる状況はどのようなものですか?
レプリケーションモードがなければ、ノードに障害が発生している限り、クラスター全体にデータが不足して使用できなくなります。



redis 内のデータがホットデータであることを確認する方法redisメモリデータセットのサイズが特定のサイズに増加すると、データ消去戦略が実装されます

使用シナリオ
セッションキャッシュ:redisは永続的な操作を提供するため、問題が発生した場合に復元できます。
キュー:リストとセットのデータ型をメッセージキューとして使用できます。
パブリッシュ/サブスクライブ:

redisクラスター
読み取りおよび書き込み操作が失われたかどうかに関係なく、redisは強力なデータ整合性を保証しません。つまり、実際の使用では、特定の条件下でクラスターが書き込み操作を失う可能性があります。


16384ノード、デフォルトは0データベース、pingを使用してredisが接続されているかどうかをテストします。


AOF操作:すべての書き込み操作をログの形式で記録します。ファイルを再書き込みせずにファイルを追加するだけでよく、redisが開始すると、ログは最初から最後まで実行され、データ回復作業が完了します。AOFは追加の形式であるため、ファイルより多くの
この問題への、データが一定の時間に達したときに、新しいメカニズムを書き換え、一時ファイルに書き込まれたステートメントに、プロセス内のデータは、各データセットの対応を横断する新しいプロセスをフォークし、次に置き換えられます古いファイルでは、AOFファイルのサイズが最後の書き換え後のサイズの2倍になり、ファイルが64Mを超えると、デフォルトのトリガーがトリガーされます。

redisメモリが使い果たされるとどうなるか
上限に達した場合、redis writeコマンドはエラーメッセージを返すか、redisをキャッシュとして使用して消去メカニズムを構成します。上限に達すると、古いコンテンツは洗い流されます

Redisはシングルスレッドです。CPU使用率を向上させる方法はありますか?
同じサーバーに複数のredisインスタンスをデプロイして、それらを異なるサーバーとして使用できます。ある時点で、いずれかのサーバーが十分ではなく、シャーディングを使用できます

あなただけのconfigureマスターに必要な
マスタとスレーブに情報メッセージを送信する、マスターによってセンチネル取得スレーブ、その情報を取得する
ホストにsentineデータベースから定期的に歩哨を:情報を送信するためにハローチャンネルと番兵を共有し、これらのデータベースを監視し、その情報の
歩哨がマスターにタイミングとスレーブはPINGコマンドを送信して、データベースとノードが停止しているかどうかを監視します

元の11件の記事を公開 いいね2 訪問数140

おすすめ

転載: blog.csdn.net/sinat_38195280/article/details/88885842