ホームページ データベース Redis Redisデータ構造の利用シナリオの紹介

Redisデータ構造の利用シナリオの紹介

Mar 09, 2021 am 09:09 AM
redis 使用するシーン データ構造

Redisデータ構造の利用シナリオの紹介

redis データベースには、文字列-文字列、ハッシュ-辞書、リスト-リスト、セット-セット、およびソートされたセット-順序セットの 5 つのデータ構造があります。

これら 5 つのデータ構造にはさまざまな使用シナリオがありますので、以下にその使用シナリオを紹介します。

1. String

String データ構造は単純な Key-Value 型で、値は String だけでなく数値も可能です (数値型が Long で表現できる場合、エンコーディングはは整数型です。その他は文字列として sdshdr に保存されます)。 String 型を使用すると、Memcached の現在の機能を完全に実現し、より効率的にすることができます。 Redisのスケジュール永続化(RDBモードまたはAOFモードを選択可能)、操作ログ、レプリケーションなどの機能もお楽しみいただけます。 Memcached と同じ get、set、incr、decr およびその他の操作を提供することに加えて、redis は次の操作も提供します:

1.LEN niushuai:O(1)获取字符串长度
2.APPEND niushuai redis:往字符串 append 内容,而且采用智能分配内存(每次2倍)
3.设置和获取字符串的某一段内容
4.设置及获取字符串的某一位(bit)
5.批量设置一系列字符串的内容
6.原子计数器
7.GETSET 命令的妙用,请于清空旧值的同时设置一个新值,配合原子计数器使用
ログイン後にコピー

2、Hash

Memcached では、多くの場合、次の操作が使用されます。構造化情報は HashMap にパッケージ化され、クライアント上でシリアル化され、ユーザーのニックネーム、年齢、性別などの文字列値 (通常は JSON 形式) として保存されます。このとき、いずれかの項目を変更する必要がある場合、通常は文字列(JSON)を取り出してデシリアライズし、特定の項目の値を変更してから文字列(JSON)にシリアル化して保存する必要があります。それを戻します。非常に多くのことを行うために単に属性を変更するのは非常にコストがかかるはずであり、同時操作が可能な一部の状況には適していません (たとえば、2 つの同時操作で経過時間を変更する必要があるなど)。 Redis のハッシュ構造を使用すると、データベース内の属性を更新するのと同じように、特定の属性値のみを変更できます。 (ユーザー属性の保存、読み取り、および変更)

3. List

List は単なるリンク リストです (Redis は List を実装するために両端リンク リストを使用します)。データ構造の知識を学習しました。その構造を理解する必要があります。 List構造を利用することで、最新ニュースランキング(新浪ブログのタイムラインなど)などの機能を簡単に実装できます。 List のもう 1 つのアプリケーションはメッセージ キューです。List の Push 操作を使用してタスクを List に保存し、ワーカー スレッドが PoP 操作を使用してタスクを実行用に取り出します。 Redis は、リスト内の要素の特定のセグメントを操作するための API も提供しており、リスト内の要素の特定のセグメントを直接クエリして削除できます。

(学習ビデオ共有: redis データベース チュートリアル)

4. Set

Set はセットです。セットの概念は、ユニークな値、その組み合わせ。一部の集合データは、Redis が提供する Set データ構造を使用して保存できます。たとえば、Weibo アプリケーションでは、ユーザーのすべてのフォロワーをコレクションに保存したり、すべてのファンをコレクションに保存したりできます。 Redis は非常にユーザーフレンドリーであり、コレクションに対して交差、結合、差分などの操作を提供するため、共通の注意、共通の好み、2 次友人などの機能を実装すると非常に便利です。さまざまなコマンドを使用して、結果をクライアントに返すか、新しいコレクションに保存するかを選択することもできます。

1.共同好友、二度好友
2.利用唯一性,可以统计访问网站的所有独立 IP
3.好友推荐的时候,根据 tag 求交集,大于某个 threshold 就可以推荐
ログイン後にコピー

5. ソート セット

セットと比較すると、ソート セットはセット内の要素に重みパラメータ スコアを追加するため、セット内の要素を次の順序に従って配置できます。たとえば、クラス全体の成績を保存するソート セットでは、設定値を学生 ID 番号、スコアをテストのスコアにすることができます。このようにして、データを設定されている場合、自然な並べ替えはすでに実行されています。さらに、ソート セットを使用して重み付けされたキューを作成することもできます。たとえば、通常のメッセージのスコアは 1、重要なメッセージのスコアは 2 です。その後、ワーカー スレッドはソートの逆の順序を選択して作業を取得できます。タスク。重要なタスクに優先順位を付けます。

2. その他の redis 機能の利用シナリオ

1. サブスクリプション公開システム

Pub/Sub とは文字通り、パブリッシュ (Publish) とサブスクリプション (Subscribe) を意味します。特定のキー値に対してメッセージの公開とメッセージのサブスクリプションを設定できます。メッセージがキー値に基づいて公開されると、そのメッセージをサブスクライブするすべてのクライアントが対応するメッセージを受信します。この機能の最もわかりやすい用途は、リアルタイム メッセージング システムとしての使用です。

2. トランザクション

NoSql がトランザクションをサポートしないと誰が言ったのでしょうか? Redis トランザクションは厳密な ACID トランザクション (EXEC を使用して実行のために送信される一連のコマンドなど、実行中にサーバーがダウンしているため、一部のコマンドが実行され、残りは実行されません)が、このトランザクションは依然としてコマンドのパッケージ化と実行の基本機能を提供します(サーバーに問題がない場合は、一連のコマンドを確実に実行できます)一緒に実行すると、他のクライアント コマンドが途中に挿入されて実行されます)。 Redis には監視機能も用意されており、キーを監視してトランザクションを実行できますが、このプロセス中に監視の値が変更されると、トランザクションが検出され、実行が拒否されます。

関連する推奨事項: redis データベース チュートリアル

以上がRedisデータ構造の利用シナリオの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

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

Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

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

Redisコマンドの使用方法 Redisコマンドの使用方法 Apr 10, 2025 pm 08:45 PM

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

Redisロックの使用方法 Redisロックの使用方法 Apr 10, 2025 pm 08:39 PM

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

Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

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

基礎となるRedisを実装する方法 基礎となるRedisを実装する方法 Apr 10, 2025 pm 07:21 PM

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

Redisのソースコードを読み取る方法 Redisのソースコードを読み取る方法 Apr 10, 2025 pm 08:27 PM

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

Redis用のメッセージミドルウェアの作成方法 Redis用のメッセージミドルウェアの作成方法 Apr 10, 2025 pm 07:51 PM

Redisは、メッセージミドルウェアとして、生産消費モデルをサポートし、メッセージを持続し、信頼できる配信を確保できます。メッセージミドルウェアとしてRedisを使用すると、低遅延、信頼性の高いスケーラブルなメッセージングが可能になります。

See all articles