コマンドとアプリケーション シナリオを通じて、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衣類リムーバー

AI Hentai Generator
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指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

Redisのすべてのキーを表示するには、3つの方法があります。キーコマンドを使用して、指定されたパターンに一致するすべてのキーを返します。スキャンコマンドを使用してキーを繰り返し、キーのセットを返します。情報コマンドを使用して、キーの総数を取得します。

Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

Redisサーバーを起動する手順には、以下が含まれます。オペレーティングシステムに従ってRedisをインストールします。 Redis-Server(Linux/Macos)またはRedis-Server.exe(Windows)を介してRedisサービスを開始します。 Redis-Cli ping(Linux/macos)またはRedis-Cli.exePing(Windows)コマンドを使用して、サービスステータスを確認します。 Redis-Cli、Python、node.jsなどのRedisクライアントを使用して、サーバーにアクセスします。

Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

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