検索
ホームページデータベースRedisRedis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

1.string型

1-1 string型データの基本操作

データの追加/変更: キー値の設定

#データの取得:

get key

#データの削除:
del キー

複数のデータの追加/変更: mset key value key1 value1

##複数のデータの取得:

mget key key1

#元のデータの末尾に情報を追加します (存在しない場合は追加します):
append key value

##1-2 文字列型の増減操作

指定された範囲内の値を増やすように値を設定します: incr キーのデフォルトは毎回 1 ずつ増加します | 新しい値が追加されるたびに incrby キーの値
データを設定します指定範囲を減らすには: decr key | decrby key value は新しい値を追加するのと同じです

アプリケーション シナリオ

データベース テーブル ID の主キーを制御し、データベース テーブルの主キー生成戦略を提供して、データ テーブルの主キーの一貫性を確保します。

有効期限の設定:

setex キーの秒値

アプリケーション シナリオ

時間制限のある投票機能の実現: たとえば、WeChat 投票は 1 時間に 1 回行うことができます
ホットな実現情報: 例: eコマース 業界で人気の製品、ニュース Web サイトで人気のニュース

1-4 文字列型のアプリケーション シナリオ

Weibo big V ホームページ 頻繁にアクセスするには、ファン、フォロワー、Weibo の数を随時更新する必要があります。これは高頻度の情報なので、redis の文字列型を利用することで解決できます
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
ユーザーの主キーと属性をキー値として、redis に big V のユーザー情報を設定します。導入事​​例です。
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
ここで、キーの命名規則について簡単に説明する必要があります: テーブル名 主キー 主キー値 フィールド: フィールド値。このようなルールに従って名前を付けることで、キーの値を非常に適切に管理できます。

別の方法を使用してこれを実現することもできます。これは、キーの後に構造体を直接続けることです。たとえば、
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
上記のどちらの方法でも、次のことが可能です。はい、最初の値は任意の値を簡単に管理できるのに対し、2 番目の値は毎回変更する必要があるというだけです。ビジネス シナリオに応じて、定期的に更新できます。

データの追加/変更:

hset キー フィールド値

データの取得:

hget キー フィールド | hgetall キー

データの削除:

hdel キー フィールド field1

複数のデータの追加/変更: hmset キー フィールド value field1 value1

##複数のデータの取得:

hmget key field field1

テーブル内のフィールドの数を取得します:

hlen key

テーブルにフィールドが存在するかどうかを取得します:

hexists キー フィールド

2-2 ハッシュ型データの拡張操作

ハッシュ テーブル内のすべてのフィールド値を取得します: hkeys key

ハッシュ テーブル内のすべてのフィールド値を取得します。 hvals key

指定したフィールドの値を設定して、指定した範囲の値を増やします: hincrby key field increment | hincrbyfloat キー フィールドの増分

2-3 ハッシュ ビジネス シナリオ ショッピング カート

この画像はインターネットから取得したもので、自家製ではありません。ショッピング カートのシーンをシミュレートしているだけです。
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
上の画像では、ショッピング カート内の情報が表示されています。 , これを処理するために Redis を使用します. ショッピング カートの実装。

これは、ショッピング カートの追加とショッピング カートの取得の実装です。キーの名前は、テーブル名、主キー、主キーの値です。
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
上記では、テーブル名、主キー、主キーの値という名前が付けられています。問題の 1 つは、製品情報のストレージに多くの重複が存在するため、製品を個別にハッシュする必要があることです。以下の図に示すように、ここでは製品 ID
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
のみを指定します。1 つは複数のフィールドを設定する方法、もう 1 つは直接 json として保存する方法です。情報が頻繁に変更されない場合は、json
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
を使用してメソッドhsetnx キー フィールドの値を提供できます。存在する場合は追加されません。存在しない場合は追加されません。 、追加されます。この機能は、異なるユーザーが同じ商品を追加した場合に、上書きや無駄な操作を避けるために使用されます
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

##3. list type

データストレージ要件: 複数のデータを保存し、データのストレージスペースの順序を区別します。
必要なデータ構造: 1 つのストレージスペースに複数のデータを保存し、エントリの順序をデータを通じて反映できます
リスト型: 複数のデータを保存します。最下層は二重リンクリスト格納構造を使用して実装します。

データの追加/変更:

lpush キー値 value1 | rpush キー値 value1

データの取得: lrange キー start end | lindex キー インデックス | llen key

データの削除: rpop key | lpop key

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

#3-2 リスト型データの拡張操作##

指定された時間内にデータを取得および削除します: blpop key1 key2 timeout | brpop key1 key2 timeout

この関数の単純なケースを作成します。わかりやすい

#左側のターミナル コマンドを実行すると、削除されたデータが返されるまで 30 秒待機します。

右側の add コマンドが実行されます。 左側は削除されたデータを直接返します。
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

上記でリストの基本操作がわかりました。lpop キーまたは rpop キーを実行すると、do または右側から削除できますが、友人のサークルがビジネスを気に入ってキャンセルするシナリオがあります。途中からのデータです。ケースは以下のとおりです。

最初に a b c d
を list5 に追加し、次に c を削除します
確認すると、a b d だけが残ります
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

4. セットタイプ

新しいストレージ要件: 大量のデータを保存し、クエリの利便性を高めるために効率を向上させます
必要なストレージ構造: 大量のデータを保存できる、効率的な内部ストレージメカニズム、クエリが簡単
set タイプ: ハッシュストレージ構造とまったく同じ、値ではなくキーのみを格納し (nil)、値の繰り返しは許可されません

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

4-1 セット型データの基本操作

追加/modify data:sadd キーメンバー member1

データの取得: smembers key

データの削除: srem key member1

コレクションデータの総量を取得: scard key

コレクションに指定したデータが含まれているかどうかを判定: sismember key member

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

4-2 セット型データ展開演算

セット内の指定された数のデータをランダムに取得します: srandmember key count

コレクション内の特定のデータをランダムに取得し、コレクションから新しいデータ セットを削除します: spop key

話題の情報、話題のニュース、売れ筋旅行、アプリアプリのレコメンド、フォローレコメンドなどをランダムにプッシュ.

Kaka は最近ディスカスを書いているため、このケースは注意喚起を達成するために使用されます。

ケース 1: 特定の推奨メカニズムに従って対応するユーザーをセットに格納し、毎回推奨する必要がある 2 人のユーザーをランダムに取得します

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

ケース 2: 特定の推奨メカニズムに従ってセットに対応するユーザーを保存し、日付に基づいて毎日推奨されるユーザーを繰り返すことはできません

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

交差点、和集合、および差集合

sinter key key1
sunion key key1
sdiff key key1
2 つの集合の積集合、和集合、および差集合は、指定された集合に格納されます

sinterstore destination key1 key2
sunionstore destination key1 key2
sdiffstore destination key1 key2

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
案例:我们需要挖掘一个信息的共同好友。例如微信公众号的共同关注好友数量、QQ添加新好友的推荐机制、深度挖掘用户直接的联系

就根据上述案例,我们可以使用差集来实现qq的有可能认识的好友。

4-5 set类型业务场景 实现网站的PV UV IP的记录

PV直接使用string类型的incr统计即可

UV和IP都是独立不重复的,使用set来操作。

在上边我们知道set有一个特性就是不能重复,我们就可以根据这一点来轻松实现这个功能。然后使用scard key 来统计数量。

独立訪問者としての UV については、ローカル Cookie を使用してそれを実現できます。同様に、記録のために Cookie を Redis に渡します
Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

5.sorted_set タイプ

前の 4 つのタイプはいずれも並べ替えをサポートしていません。以下で説明するsorted_set タイプは、ビッグ データのストレージと並べ替えの両方をサポートしています。 function

5-1.sorted_set 型の基本操作

データの追加:zadd キー スコア メンバー

データの取得: zrange キー スタート ストップ | zrevrange キー スタート ストップ

データの削除: zrem キー メンバー

Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事
条件に基づいてデータを取得: zrangebyscore キーの最小最大制限| zrevrangescore key max min

データの条件付き削除: zremrangebyrank key start stop | zremrangebyscore key min max

## コレクション データの総量を取得します: zcard key | zcount key min max

交差部分と操作を設定します: zinterstore destination numkeys key | zunionstore destination numkeys key(このコマンドは実演しません。ドキュメントを自分で確認できます。これは set と似ていますが、次の点が異なります。すべての交差の合計が加算されます。次に、numkeys があります。このパラメータは、計算に必要なキーの合計数です。必要なキーの数は後で必要になります)

対応するインデックスを取得しますデータへ:zrank キー メンバー | zrevrank キー メンバー

socre 値の取得と変更: zscore キー メンバー | Zincrby キー インクリメント メンバー

概要

上記は、redis データ型の簡単な紹介と具体的なアプリケーションです。次の記事では、実際の戦闘は特定のニーズに基づいて実行されます。

以上がRedis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Redis:データモデルと構造の調査Redis:データモデルと構造の調査Apr 16, 2025 am 12:09 AM

Redisのデータモデルと構造には、5つの主要なタイプが含まれます。1。文字列:テキストまたはバイナリデータの保存に使用され、原子操作をサポートします。 2。リスト:キューとスタックに適した注文された要素コレクション。 3.セット:順序付けられていない一意の要素セット、セット操作をサポートします。 4。注文セット(sortedset):ランキングに適したスコアを持つ一意の要素セット。 5。ハッシュテーブル(ハッシュ):オブジェクトの保存に適したキー価値ペアのコレクション。

Redis:データベースアプローチの分類Redis:データベースアプローチの分類Apr 15, 2025 am 12:06 AM

Redisのデータベースメソッドには、メモリ内データベースとキー価値ストレージが含まれます。 1)Redisはデータをメモリに保存し、速く読み取り、書き込みます。 2)キー価値のペアを使用してデータを保存し、キャッシュやNOSQLデータベースに適したリスト、コレクション、ハッシュテーブル、注文コレクションなどの複雑なデータ構造をサポートします。

なぜRedisを使用するのですか?利点と利点なぜRedisを使用するのですか?利点と利点Apr 14, 2025 am 12:07 AM

Redisは、高速パフォーマンス、リッチデータ構造、高可用性とスケーラビリティ、持続性能力、幅広いエコシステムサポートを提供するため、強力なデータベースソリューションです。 1)非常に速いパフォーマンス:Redisのデータはメモリに保存され、非常に速い読み取り速度と書き込み速度が高く、高い並行性と低レイテンシアプリケーションに適しています。 2)豊富なデータ構造:さまざまなシナリオに適したリスト、コレクションなど、複数のデータ型をサポートします。 3)高可用性とスケーラビリティ:マスタースレーブの複製とクラスターモードをサポートして、高可用性と水平スケーラビリティを実現します。 4)持続性とデータセキュリティ:データの整合性と信頼性を確保するために、データの持続性がRDBとAOFを通じて達成されます。 5)幅広い生態系とコミュニティのサポート:巨大なエコシステムとアクティブなコミュニティにより、

NOSQLの理解:Redisの重要な機能NOSQLの理解:Redisの重要な機能Apr 13, 2025 am 12:17 AM

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redis:主要な機能を特定しますRedis:主要な機能を特定しますApr 12, 2025 am 12:01 AM

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redis:一般的なデータ構造のガイドRedis:一般的なデータ構造のガイドApr 11, 2025 am 12:04 AM

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターを実装する方法Redisカウンターを実装する方法Apr 10, 2025 pm 10:21 PM

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

Redisコマンドラインの使用方法Redisコマンドラインの使用方法Apr 10, 2025 pm 10:18 PM

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

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 中国語版

SublimeText3 中国語版

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。