この記事では、Redis の 5 つの基本タイプをコマンドと応用シナリオを通して紹介します。コマンドと実践方法はたくさんあります。皆さんのお役に立てれば幸いです。
redis 従来の 5 つのビッグ データ タイプの実装
Redis の概要:
Redis は、データベース、キャッシュ、メッセージング ミドルウェアとして使用できるオープン ソース (BSD ライセンス) のインメモリ データ構造ストレージ システムです。範囲クエリ、ビットマップ、ハイパーログログ、および地理空間 (地理空間) インデックス半径クエリを使用して、文字列、ハッシュ、リスト、セット、ソートされたセットなどの多くのタイプのデータ構造をサポートします。 Redis にはレプリケーション、LUA スクリプト、LRU エビクション、トランザクション、さまざまなレベルのディスク永続性が組み込まれており、Redis Sentinel と自動パーティショニング (クラスター) を通じて高可用性を実現します。 [関連する推奨事項: Redis ビデオ チュートリアル ]
redis コマンド クエリ: http://www.redis.cn/commands.html
注: redis コマンドはサイズではありません書き込みは区別され、キーは大文字と小文字が区別されます。
クエリ コマンド ヘルプ:
help @type noun
例:
#string 文字列型最も一般的に使用される## セットkey vuue
getkey
複数のキー値を同時に設定/取得MSET キー値 [key value .. .]
MGET key [key ,,,]
値を増減します値を増加させます数値増分キー
キー増分によって指定された整数を増加します
数値減分キーを減分します
指定された整数を減分キーによって減分します
文字長の取得STRLEN キー
##分散ロック##setnx キーの値set key value [EX 秒] [PX ミリ秒] [NX|XX]
EX: キーは何秒後に期限切れになりますか?
PX: 何ミリ秒後の有効期限以降のキーアプリケーション シナリオ
製品番号と順序番号は、INCR コマンドを使用して生成されます。
はい、記事と同じです。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 10要素の追加
sadd key member [member ...]要素の削除
srem key member [member ...]コレクションのすべての要素を取得します
smembers keyコレクション内に要素があるかを判定
sismember key memberコレクション内の要素数を取得
scard keyコレクションから要素をランダムにポップアップします。要素は削除されません
srandmember key [番号]コレクションから要素をランダムにポップアップし、要素を 1 つ削除します
spop key [数値]操作を設定します
#A に属し、B にも属する要素。
セットの結合操作 A v B
A または B
##WeChat 宝くじミニ プログラム1. ユーザー ID、すぐに参加、sadd キー ユーザー ID
2. 参加者数を表示 現在 67231 人が参加しています scard key
3. 抽選 (任意選択)セットから N 名が当選)
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:msgid
4. いいねをしたユーザーの数の統計 (待機中の一般的な赤い数字) scard pub:msgid5. 友人が正しいかどうかを判断する 著者が気に入った、sismember pub:msgid user idWeibo の友人は社会的関係をフォローします一緒にフォローしている人
#sadd s1 1 1 2 3 4
sadd s2 2 3 6 8
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. 要素のスコアを取得11. 要素のランキングの取得
zrank key member
アプリケーション シナリオ
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 サイトの他の関連記事を参照してください。