目次
#1-3 文字列型エージング操作" >#1-3 文字列型エージング操作
#2. ハッシュ型" >#2. ハッシュ型
2-1 ハッシュ型データの基本操作" >2-1 ハッシュ型データの基本操作
2-2 ハッシュ型データの拡張操作" >2-2 ハッシュ型データの拡張操作
#3-1 リスト型データの基本操作" >#3-1 リスト型データの基本操作
#3-3 リスト ビジネス シナリオ " >#3-3 リスト ビジネス シナリオ
##4-3セット型ビジネスシナリオおすすめ情報" >##4-3セット型ビジネスシナリオおすすめ情報
##4-4 セット型ビジネス シナリオ マイニング ユーザー関係 " >##4-4 セット型ビジネス シナリオ マイニング ユーザー関係
5.sorted_set タイプ" > 5.sorted_set タイプ
ホームページ データベース Redis Redis の 5 つの主要なデータ型とアプリケーション シナリオを理解するための 1 つの記事

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

May 25, 2020 pm 04:53 PM
redis

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 までご連絡ください。

ホット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 07:21 PM

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

Redis-Serverが見つからない場合はどうすればよいですか Redis-Serverが見つからない場合はどうすればよいですか Apr 10, 2025 pm 06:54 PM

Redis-Serverが見つからない問題を解決するための手順:インストールを確認して、Redisが正しくインストールされていることを確認します。環境変数Redis_hostとredis_portを設定します。 Redis Server Redis-Serverを起動します。サーバーがRedis-Cli pingを実行しているかどうかを確認します。

Redisのすべてのキーを表示する方法 Redisのすべてのキーを表示する方法 Apr 10, 2025 pm 07:15 PM

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

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

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

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

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

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

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

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

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

See all articles