ホームページ >データベース >Redis >コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

青灯夜游
青灯夜游転載
2022-02-11 19:51:211766ブラウズ

この記事では、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

例:

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

#string 文字列型

最も一般的に使用される## セットkey vuue

getkey

複数のキー値を同時に設定/取得MSET キー値 [key value .. .]

MGET key [key ,,,]

値を増減します値を増加させます数値増分キー

キー増分によって指定された整数を増加します

数値減分キーを減分します

指定された整数を減分キーによって減分します

文字長の取得STRLEN キー

##分散ロック

##setnx キーの値set key value [EX 秒] [PX ミリ秒] [NX|XX]

EX: キーは何秒後に期限切れになりますか? コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

PX: 何ミリ秒後の有効期限以降のキー
  • NX: キーが存在しない場合、キーが作成されます。効果は setnx
  • XX: と同等です。キーが存在する場合は、キーを上書きします

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。アプリケーション シナリオ

製品番号と順序番号は、INCR コマンドを使用して生成されます。

はい、記事と同じです。
  • 読み取りカウント: 残りのアドレスをクリックしている限り、incr キー コマンドを直接使用して追加します。数字の 1 を入力すると、数字の記録が完了します。

コマンドの実践

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

ハッシュ ハッシュ タイプ

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

と Java データ構造のマッピング

Map>

一度に 1 つのフィールド値を設定します

## HSET キー フィールド値一度に 1 つのフィールド値を取得

HGET キー フィールド

一度に複数のフィールド値を設定

HMSET キー フィールド値 [フィールド値 ...]

複数のフィールド値を一度に取得

HMGET キー フィールド[フィールド ...]

すべてのフィールド値を取得

#hgetall key

#キー内のすべての数量を取得

hlen

キーの削除

#hdel

##コマンドのデモ

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

ショッピング カートの初期の頃、現在中小規模の工場は次のことができます。

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。 を使用して新しい製品を追加します --> hset shopcar:uid1024 334488 1

新しい製品を追加します --> hset shopcar:uid2014 334477 1製品数量を追加します- -> hincrby shopcar:uid1024 334477 1 product Total --> hlen shopcar:uid1024

すべて選択 --> hgetall shopcar:uid1024

list リストの種類

リストの左側に要素を追加します

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。lpush キーの値 [値 ...]

#リストの右側に要素を追加します

rpush key value [value ...]

リストを表示

lrange key start stop

要素を取得リスト番号

llenキー

コマンドの使用法

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

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

WeChat記事購読パブリックアカウント

1、[xx宝物]と[xx新聞]がそれぞれ記事11と22を公開

##2. 著者は両方をフォローしています。新しい記事が公開される限り、その記事は私のリストにプッシュされます

lpush likearticle: uid1024 11 22

3. author 自分のサブスクリプション アカウントのすべての記事はページングに似ています。次の 0 ~ 10 は、一度に 10 個のアイテムを表示することを意味します lrange likearticle:uid1024 0 10

コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

set 非重複リスト タイプ

要素の追加

sadd key member [member ...]

要素の削除

srem key member [member ...]

コレクションのすべての要素を取得します

smembers key

コレクション内に要素があるかを判定

sismember key member

コレクション内の要素数を取得

scard key

コレクションから要素をランダムにポップアップします。要素は削除されません

srandmember key [番号]

コレクションから要素をランダムにポップアップし、要素を 1 つ削除します

spop key [数値]

操作を設定します

    ##セット A - B
  • の差分演算
  • A に属するが B に属さない要素から構成されるセット
##sdiff key [key ...]

セットの共通部分は 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 名が当選) コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

srandmember キー 2 ランダム 2 人を引いた場合、要素は削除されません

spop キー 3 ドライバーが 3 人を引いた場合、要素は削除されます

WeChat モーメントでの「いいね!」

1. いいねを追加;sadd pub:msgid like user id1 like user id2

2. Like をキャンセル; srem pub:msgid like user id

3. すべてのポイントを表示 メンバーにいいねをしたユーザー pub:msgid1コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

4. いいねをしたユーザーの数の統計 (待機中の一般的な赤い数字) scard pub:msgid

5. 友人が正しいかどうかを判断する 著者が気に入った、sismember pub:msgid user id

Weibo の友人は社会的関係をフォローします

一緒にフォローしている人

#sadd s1 1 1 2 3 4

sadd s2 2 3 6 81コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

sinter s1 s2

共通の注目: 誰かの Weibo にアクセスすると、誰かと共有されている情報がすぐに得られます。 人

#私がフォローしている人も彼をフォローしています (私たちは皆同じ趣味を持っています)

私は 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キー メンバー [メンバー ...]

5. 要素
  • zrem キー メンバー [メンバー ...]

6 を削除します。指定されたスコア範囲の要素を取得します
  • #zrangebyscore key min max [ WITHSCORES] [LIMIT offset count]
#7. 要素のスコアを増やします

    zincrby キー インクリメント メンバー
#8.

#zcard key
  • 9 の要素数のセットを取得します。指定したスコア範囲内の要素数を取得します

zcount key min max
  • 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
1コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

2. Douyin hot search

1コマンドとアプリケーション シナリオを通じて、Redis の 5 つの基本タイプを理解できるようにガイドします。

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 サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。