コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。
この記事では、Redis の 5 つの基本タイプをコマンドと応用シナリオを通して紹介します。コマンドと実践方法はたくさんあります。皆さんのお役に立てれば幸いです。
redis 従来の 5 つのビッグ データ タイプのアプリケーション
redis 従来の 5 つのビッグ データ タイプの実装
Redis の概要:
Redis は、データベース、キャッシュ、メッセージング ミドルウェアとして使用できるオープン ソース (BSD ライセンス) のインメモリ データ構造ストレージ システムです。範囲クエリ、ビットマップ、ハイパーログログ、および地理空間 (地理空間) インデックス半径クエリを使用して、文字列、ハッシュ、リスト、セット、ソートされたセットなどの多くのタイプのデータ構造をサポートします。 Redis にはレプリケーション、LUA スクリプト、LRU エビクション、トランザクション、さまざまなレベルのディスク永続性が組み込まれており、Redis Sentinel と自動パーティショニング (クラスター) を通じて高可用性を実現します。 [関連する推奨事項: Redis ビデオ チュートリアル ]
redis コマンド クエリ: http://www.redis.cn/commands.html
注: redis コマンドはサイズではありません書き込みは区別され、キーは大文字と小文字が区別されます。
クエリ コマンド ヘルプ:
help @type noun
例:
最も一般的に使用される## セットkey vuue
getkey
複数のキー値を同時に設定/取得MSET キー値 [key value .. .]
MGET key [key ,,,]
値を増減します値を増加させます数値増分キー
キー増分によって指定された整数を増加します
数値減分キーを減分します
指定された整数を減分キーによって減分します
文字長の取得STRLEN キー
##分散ロック##setnx キーの値set key value [EX 秒] [PX ミリ秒] [NX|XX]
EX: キーは何秒後に期限切れになりますか?
- NX: キーが存在しない場合、キーが作成されます。効果は setnx
- XX: と同等です。キーが存在する場合は、キーを上書きします
アプリケーション シナリオ
製品番号と順序番号は、INCR コマンドを使用して生成されます。
はい、記事と同じです。- 読み取りカウント: 残りのアドレスをクリックしている限り、incr キー コマンドを直接使用して追加します。数字の 1 を入力すると、数字の記録が完了します。
Map
## HSET キー フィールド値一度に 1 つのフィールド値を取得
HGET キー フィールド
一度に複数のフィールド値を設定
HMSET キー フィールド値 [フィールド値 ...]
複数のフィールド値を一度に取得
HMGET キー フィールド[フィールド ...]
すべてのフィールド値を取得
#hgetall key#キー内のすべての数量を取得hlen
キーの削除#hdel
##コマンドのデモ
アプリケーション シナリオ
ショッピング カートの初期の頃、現在中小規模の工場は次のことができます。 を使用して新しい製品を追加します --> hset shopcar:uid1024 334488 1
新しい製品を追加します --> hset shopcar:uid2014 334477 1製品数量を追加します- -> hincrby shopcar:uid1024 334477 1 product Total --> hlen shopcar:uid1024
すべて選択 --> hgetall shopcar:uid1024
list リストの種類
リストの左側に要素を追加します
lpush キーの値 [値 ...]
#リストの右側に要素を追加します
rpush key value [value ...]
リストを表示
lrange key start stop
要素を取得リスト番号
llenキー
コマンドの使用法
アプリケーションシナリオ
WeChat記事購読パブリックアカウント
1、[xx宝物]と[xx新聞]がそれぞれ記事11と22を公開
##2. 著者は両方をフォローしています。新しい記事が公開される限り、その記事は私のリストにプッシュされますlpush likearticle: uid1024 11 223. author 自分のサブスクリプション アカウントのすべての記事はページングに似ています。次の 0 ~ 10 は、一度に 10 個のアイテムを表示することを意味します lrange likearticle:uid1024 0 10set 非重複リスト タイプ
要素の追加
sadd key member [member ...]要素の削除
srem key member [member ...]コレクションのすべての要素を取得します
smembers keyコレクション内に要素があるかを判定
sismember key memberコレクション内の要素数を取得
scard keyコレクションから要素をランダムにポップアップします。要素は削除されません
srandmember key [番号]コレクションから要素をランダムにポップアップし、要素を 1 つ削除します
spop key [数値]操作を設定します
- ##セット A - B
- の差分演算 A に属するが B に属さない要素から構成されるセット
#A に属し、B にも属する要素。
simter key [key ...]
セットの結合操作 A v B
A または B
結合に属する要素の結合セットkey [key ...]
##WeChat 宝くじミニ プログラム1. ユーザー ID、すぐに参加、sadd キー ユーザー ID
2. 参加者数を表示 現在 67231 人が参加しています scard key
3. 抽選 (任意選択)セットから N 名が当選)
WeChat モーメントでの「いいね!」
1. いいねを追加;sadd pub:msgid like user id1 like user id2
2. Like をキャンセル; srem pub:msgid like user id
3. すべてのポイントを表示 メンバーにいいねをしたユーザー pub:msgid
一緒にフォローしている人
#sadd s1 1 1 2 3 4
sadd s2 2 3 6 8
#私がフォローしている人も彼をフォローしています (私たちは皆同じ趣味を持っています)
私は Yu をフォローしていますファーウェイの成東氏、余成東氏も張昭東氏に続き、余氏と私は同じ趣味を持っています
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
sismember s1 3
sismember s2 3
QQ 知り合いかもしれない人を推薦します
sadd s1 1 2 3 4 5
sadd s2 3 4 5 6 7
// 共通の友人
sinter s1 s2
// 差分セット
sdiff s1 s2
sdiff s2 s1
zset 順序付きセット
一般的なコマンド
##1. 要素とその要素のスコアを順序付きセットに追加します2. 要素を追加します#ZADD キー スコア メンバー [スコア メンバー ...]##3. strat から stop in までのインデックスを持つすべての要素を返します要素スコアの到着順
zrange key start stop [WITHSORES]
4. 要素のスコアを取得- zscoreキー メンバー [メンバー ...]
- zrem キー メンバー [メンバー ...]
- #zrangebyscore key min max [ WITHSCORES] [LIMIT offset count]
- zincrby キー インクリメント メンバー
- 9 の要素数のセットを取得します。指定したスコア範囲内の要素数を取得します
- 10. ランキング範囲に従って要素を削除します
- zremrangebyrank key start stop
11. 要素のランキングの取得
zrank key member
- Zrevrank の主要メンバー (大規模から小規模まで)
アプリケーション シナリオ
1. より多くの製品の販売 並べ替えて表示products
アイデア: 製品販売ランキング リスト (ソートされたセット) を定義します。キーはグッズ:sellsort、スコアは製品販売数量です。
製品番号 1001 の販売数量は 9、製品番号 1002 の販売数量は 15 | zadd Goods:sellsort 9 1001 15 1002
顧客が購入しましたさらに 2 個のアイテム 製品 1001、製品番号は 1001 です 大きく増加します 2 | Zincrby Goods:sellsort 2 10001
売上高で上位 10 製品を検索します zrange Goods:sellsort 0 10 withscores
2. Douyin hot search
1. 動画をクリックしてください
ZINCRBY hotavi:20220203 1 八百
ZINCRBY hotavi :20220203 15 Eight Hundred 2 Hua Mulan
2. その日の上位 10 件を表示
zrevrange hotavi:20220203 0 9 withscores
Forプログラミング関連の知識については、プログラミング入門をご覧ください。 !
以上がコマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

Centosシステムでは、Redis構成ファイルを変更するか、Redisコマンドを使用して悪意のあるスクリプトがあまりにも多くのリソースを消費しないようにすることにより、LUAスクリプトの実行時間を制限できます。方法1:Redis構成ファイルを変更し、Redis構成ファイルを見つけます:Redis構成ファイルは通常/etc/redis/redis.confにあります。構成ファイルの編集:テキストエディター(VIやNANOなど)を使用して構成ファイルを開きます:sudovi/etc/redis/redis.conf luaスクリプト実行時間制限を設定します。

Redisコマンドラインツール(Redis-Cli)を使用して、次の手順を使用してRedisを管理および操作します。サーバーに接続し、アドレスとポートを指定します。コマンド名とパラメーターを使用して、コマンドをサーバーに送信します。ヘルプコマンドを使用して、特定のコマンドのヘルプ情報を表示します。 QUITコマンドを使用して、コマンドラインツールを終了します。

Redisカウンターは、Redisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

Redisデータの有効期間戦略には2つのタイプがあります。周期削除:期限切れのキーを削除する定期的なスキャン。これは、期限切れの時間帯-remove-countおよび期限切れの時間帯-remove-delayパラメーターを介して設定できます。怠zyな削除:キーが読み取られたり書かれたりした場合にのみ、削除の有効期限が切れたキーを確認してください。それらは、レイジーフリーレイジーエビクション、レイジーフリーレイジーエクスピア、レイジーフリーラジーユーザーのパラメーターを介して設定できます。

Debian Systemsでは、Directoryコンテンツを読み取るためにReadDirシステム呼び出しが使用されます。パフォーマンスが良くない場合は、次の最適化戦略を試してください。ディレクトリファイルの数を簡素化します。大きなディレクトリをできる限り複数の小さなディレクトリに分割し、Readdirコールごとに処理されたアイテムの数を減らします。ディレクトリコンテンツのキャッシュを有効にする:キャッシュメカニズムを構築し、定期的にキャッシュを更新するか、ディレクトリコンテンツが変更されたときに、頻繁な呼び出しをreaddirに削減します。メモリキャッシュ(memcachedやredisなど)またはローカルキャッシュ(ファイルやデータベースなど)を考慮することができます。効率的なデータ構造を採用する:ディレクトリトラバーサルを自分で実装する場合、より効率的なデータ構造(線形検索の代わりにハッシュテーブルなど)を選択してディレクトリ情報を保存およびアクセスする
