検索
ホームページデータベースRedisRedis の 5 つの基本データ型について詳しく説明します。

この記事では、Redis の 5 つの基本データ型 (文字列文字列、リスト リスト、セット コレクション、ハッシュ ハッシュ、Zset 順序付きコレクション) について詳しく説明します。お役に立てば幸いです。

Redis の 5 つの基本データ型について詳しく説明します。

Redis データ構造の概要

Redis の場合、すべてのキーは文字列です。基本的なデータ構造について話すときは、値を保存するためのデータ型について説明します。これには、主に String、List、Set、Zset、Hash の 5 つの一般的なデータ型が含まれます。 [関連する推奨事項: Redis ビデオ チュートリアル ]

Redis の 5 つの基本データ型について詳しく説明します。

##構造タイプに格納される値構造体 構造体の読み取りおよび書き込み機能 は文字列または整数または浮動小数点数 文字列全体または文字列の一部を操作します。整数または浮動小数点数に対してインクリメントまたはデクリメント操作を実行します。リンク リスト。リンク リストの各ノードには文字列が含まれます。リンク リストの両端でプッシュおよびポップ操作を実行し、単一または複数の要素を読み取ります。値に応じて要素を検索または削除します。文字列を含む順序なしのコレクション文字列のコレクション、基本的な方法には、追加、取得、削除の有無の確認が含まれ、交差、和集合、差分の計算なども含まれます。 単一要素を追加、取得、削除するためのメソッドが含まれていますキーと値のペアの保存に使用されるハッシュと同じです。文字列メンバーと浮動小数点スコアの間の順序付けされたマッピング。要素の順序はスコアのサイズによって決まります。包含方法は単一要素の追加、取得、削除、およびスコア範囲またはメンバーに基づく要素の取得基本的なデータ構造の詳細な説明
文字列 string
リスト リスト
セット コレクション キーと値のペアを含む順序なしのハッシュ テーブル
#Zset 順序付きセット
## String
String は Redis の最も基本的なデータ型で、1 つのキーが 1 つの値に対応します。

String 型はバイナリ セーフです。つまり、redis の文字列にはあらゆるデータを含めることができます。数値、文字列、jpg画像、シリアル化されたオブジェクトなど。

コマンドの使用法

コマンド
  • 簡単な説明
#GETGET name を使用して、指定されたキーに格納されている値を取得します。 #SET指定されたキーに格納されている値を設定します 値を削除します指定されたキーに格納されています キーに格納されている値を 1##DECRキーに格納されている値を 1 ずつ減らします#DECR キーINCRBY key amountDECRBYキーの量
SET name value DEL
DEL 名 INCR
INCR キー # だけ増やします
INCRBY key に格納されている値に整数を加算します
DECRBY に格納されている値から整数を減算しますキー
  • コマンド実行
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
127.0.0.1:6379> del hello
(integer) 1
127.0.0.1:6379> get hello
(nil)
127.0.0.1:6379> get counter
"2"
127.0.0.1:6379> incr counter
(integer) 3
127.0.0.1:6379> get counter
"3"
127.0.0.1:6379> incrby counter 100
(integer) 103
127.0.0.1:6379> get counter
"103"
127.0.0.1:6379> decr counter
(integer) 102
127.0.0.1:6379> get counter
"102"
  • 実際のシナリオ
    • キャッシュ: 従来の使用シナリオ、共通情報、文字列、画像、ビデオ、その他の情報は Redis に配置され、Redis はキャッシュ層として機能し、mysql は永続化層として機能して、mysql の読み取りおよび書き込みの負荷を軽減します。
    • Counter: redis はシングルスレッド モデルです。1 つのコマンドは、次のコマンドが実行されるまで実行されません。同時に、データを他のデータ ソースに転送できます。ワンステップ。
    • session: 一般的なソリューションは、セッション共有を実装する Spring セッション Redis です。

List list

Redis の List は実際にはリンク リストです (Redis は List を実装するために両端リンク リストを使用します)。

List 構造を使用すると、最新のメッセージ キュー機能 (Sina Weibo の TimeLine など) を簡単に実装できます。 List のもう 1 つのアプリケーションはメッセージ キューで、List の PUSH 操作を使用してタスクを List に保存し、ワーカー スレッドが POP 操作を使用して実行するタスクを取り出します。

  • コマンドの使用法
#RPOP キーLPOP値をポップしますリストの左端から順に取得して返します。 ポップされた値を返します。 LRANGELINDEX
コマンド 簡単な説明
RPUSH を使用して、指定された値をリストの右端にプッシュします。 RPUSH キーの値
LPUSH 指定された値をリストの左端にプッシュします LPUSH キーの値
RPOP リストの右端から値をポップし、ポップされた値を返します
#LPOP key
リスト内のすべての値を取得します。指定された範囲 LRANGE key 0 -1
インデックスによってリスト内の要素を取得します。負の添え字を使用することもできます。-1 はリストの最後の要素を表し、-2 はリストの最後から 2 番目の要素を表します。 LINEX キー インデックス
リスト使用のヒント
  • lpush lpop=Stack(stack)
    • lpush rpop=Queue (キュー)
    • lpush ltrim=Capped Collection (限定コレクション)
    • lpush brpop=Message Queue (メッセージキュー)
  • コマンドの実行
  • 127.0.0.1:6379> lpush mylist 1 2 ll ls mem
    (integer) 5
    127.0.0.1:6379> lrange mylist 0 -1
    1) "mem"
    2) "ls"
    3) "ll"
    4) "2"
    5) "1"
    127.0.0.1:6379> lindex mylist -1
    "1"
    127.0.0.1:6379> lindex mylist 10        # index不在 mylist 的区间范围内
    (nil)
実際のシナリオ
    • Weibo TimeLine
    • : 誰かが Weibo に投稿し、lpush を使用してタイムラインに追加します。新しいリスト情報が表示されます。
    • メッセージ キュー
セット コレクション

Redis のセットはString 型の順序付けされていないコレクション。セットのメンバーは一意であるため、セット内に重複したデータが存在することはできません。

Redis のコレクションはハッシュ テーブルを通じて実装されるため、追加、削除、検索の複雑さは O(1) です。

    コマンドの使用法
コマンド#SADDSADD キー値 # を使用して、1 つ以上のメンバーをコレクションに追加します。 セット内のメンバーの数を取得します#SCARD キーSMEMBERすべてのメンバーを返しますセット内 SMEMBER キー メンバーSISMEMBERメンバー要素がセット キーのメンバーであるかどうかを判断しますSISMEMBERキーメンバーその他の set 操作については、こちらを参照してください。https://www.runoob.com/redis/redis-sets。 html
簡単な説明
##SCARD

コマンド実行

    127.0.0.1:6379> sadd myset ycf ycf1 xiao ycf
    (integer) 3
    127.0.0.1:6379> smember myset
    1) "xiao"
    2) "ycf1"
    3) "ycf"
    127.0.0.1:6379> sismember myset ycf
    (integer) 1
  • 実際のシナリオ
タグ
    (タグ)、ユーザーにタグを追加するか、ユーザーがメッセージにタグを追加すると、同じタグまたは類似のタグを持つユーザーがフォローするものや人を推奨できるようになります。
    • いいね、嫌い、収集など をセットに配置して
    • ハッシュ ハッシュ

Redis ハッシュは文字列型のフィールドと値のマッピング テーブルであり、オブジェクトの保存に特に適しています。

#コマンドの使用法

  • ##コマンド
  • 簡単な説明
使用##HSET ハッシュ キー サブキー 1 値 1HGET指定されたハッシュ キーの値を取得しますHGET ハッシュ キー key1HGETALL ハッシュに含まれるすべてのキーと値のペアを取得します HGETALL hash-keyHDEL指定されたキーがハッシュに存在する場合を削除し、このキーを削除しますHDEL ハッシュキー サブキー1
  • 命令执行
127.0.0.1:6379> hset user name1 ycf
(integer) 1
127.0.0.1:6379> hset user email1 ycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
127.0.0.1:6379> hget user user
(nil)
127.0.0.1:6379> hget user name1
"ycf"
127.0.0.1:6379> hset user name2 xiaoycf
(integer) 1
127.0.0.1:6379> hset user email2 xiaoycf@163.com
(integer) 1
127.0.0.1:6379> hgetall user
1) "name1"
2) "ycf"
3) "email1"
4) "ycf@163.com"
5) "name2"
6) "xiaoycf"
7) "email2"
8) "xiaoycf@163.com"
  • 实战场景
    • 缓存: 能直观,相比string更节省空间,的维护缓存信息,如用户信息,视频信息等。

Zset有序集合

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

  • 命令使用
##HSET キーと値のペアを追加
命令 简述 使用
ZADD 将一个带有给定分值的成员添加到哦有序集合里面 ZADD zset-key 178 member1
ZRANGE 根据元素在有序集合中所处的位置,从有序集合中获取多个元素 ZRANGE zset-key 0-1 withccores
ZREM 如果给定元素成员存在于有序集合中,那么就移除这个元素 ZREM zset-key member1

更多命令请参考这里 

https://www.runoob.com/redis/redis-sorted-sets.html

  • 命令执行
127.0.0.1:6379> zadd myscoreset 100 ycf 90 xiaoycf
(integer) 2
127.0.0.1:6379> ZRANGE myscoreset 0 -1
1) "xiaoycf"
2) "ycf"
127.0.0.1:6379> ZSCORE myscoreset ycf
"100"
  • 实战场景
    • 排行榜:有序集合经典使用场景。例如小说视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。

更多编程相关知识,请访问:编程视频!!

以上がRedis の 5 つの基本データ型について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は掘金社区で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis vs. SQLデータベース:重要な違​​いRedis vs. SQLデータベース:重要な違​​いApr 25, 2025 am 12:02 AM

RedisデータベースとSQLデータベースの主な違いは、Redisが高性能および柔軟性要件に適したインメモリデータベースであることです。 SQLデータベースは、複雑なクエリとデータの一貫性要件に適したリレーショナルデータベースです。具体的には、1)Redisは高速データアクセスとキャッシュサービスを提供し、キャッシュおよびリアルタイムのデータ処理に適した複数のデータ型をサポートします。 2)SQLデータベースは、テーブル構造を介してデータを管理し、複雑なクエリとトランザクション処理をサポートし、データの一貫性を必要とするeコマースや金融システムなどのシナリオに適しています。

Redis:データストアとサービスとしてどのように機能するかRedis:データストアとサービスとしてどのように機能するかApr 24, 2025 am 12:08 AM

redisactsassassadatastoreandaservice.1)asadatastore、itusesin memorystorage for fastorations、supporting variousdatastructureSlike-key-valuepairsandsortedsets.2)asaservice、iteasruascruascriptingrupting criptingforceptingpurplecomplecomplecprexoperations

Redis vs.その他のデータベース:比較分析Redis vs.その他のデータベース:比較分析Apr 23, 2025 am 12:16 AM

他のデータベースと比較して、Redisには次の独自の利点があります。1)非常に速い速度、および読み取り操作は通常、マイクロ秒レベルにあります。 2)豊富なデータ構造と操作をサポートします。 3)キャッシュ、カウンター、公開サブスクリプションなどの柔軟な使用シナリオ。 Redisまたはその他のデータベースを選択する場合、特定のニーズとシナリオに依存します。 Redisは、高性能および低遅延のアプリケーションでうまく機能します。

Redisの役割:データストレージと管理機能の調査Redisの役割:データストレージと管理機能の調査Apr 22, 2025 am 12:10 AM

Redisは、データストレージと管理において重要な役割を果たしており、複数のデータ構造と持続性メカニズムを通じて最新のアプリケーションの中核となっています。 1)Redisは、文字列、リスト、コレクション、注文されたコレクション、ハッシュテーブルなどのデータ構造をサポートし、キャッシュや複雑なビジネスロジックに適しています。 2)RDBとAOFの2つの持続方法を通じて、Redisは信頼できるストレージとデータの迅速な回復を保証します。

Redis:NOSQLの概念の理解Redis:NOSQLの概念の理解Apr 21, 2025 am 12:04 AM

Redisは、大規模なデータの効率的なストレージとアクセスに適したNOSQLデータベースです。 1.Redisは、複数のデータ構造をサポートするオープンソースメモリデータ構造ストレージシステムです。 2.キャッシュ、セッション管理などに適した、非常に速い読み取り速度と書き込み速度を提供します。 4.使用例には、基本的なキー値ペア操作と高度なコレクション重複排除関数が含まれます。 5.一般的なエラーには、接続の問題、データ型の不一致、メモリオーバーフローが含まれるため、デバッグに注意する必要があります。 6.パフォーマンス最適化の提案には、適切なデータ構造の選択とメモリ排除戦略の設定が含まれます。

Redis:実際のユースケースと例Redis:実際のユースケースと例Apr 20, 2025 am 12:06 AM

現実世界でのRedisのアプリケーションには、1。キャッシュシステムとして、データベースクエリを加速し、2。Webアプリケーションのセッションデータを保存するには、3。リアルタイムランキングを実装する4。メッセージ配信をメッセージキューとして簡素化する。 Redisの汎用性と高性能により、これらのシナリオで輝きます。

Redis:その機能と機能の調査Redis:その機能と機能の調査Apr 19, 2025 am 12:04 AM

Redisは、高速、汎用性、豊富なデータ構造のために際立っています。 1)Redisは、文字列、リスト、コレクション、ハッシュなどのデータ構造をサポートし、コレクションを注文します。 2)メモリを介してデータを保存し、RDBとAOFの持続性をサポートします。 3)Redis 6.0から始めて、マルチスレッドI/O操作が導入されました。これにより、高い並行性シナリオでパフォーマンスが向上しました。

RedisはSQLまたはNOSQLデータベースですか?答えが説明しましたRedisはSQLまたはNOSQLデータベースですか?答えが説明しましたApr 18, 2025 am 12:11 AM

redisisclassifiedsaNosqldatabasebasesakey-valuedataModelinsteaded ofthetraditionaldatabasemodel.itoffersspeedand andffficability、makingidealforreal-timeaplications andcaching、butmaynotbesbesutable fors cenariois requiring datientiantientioniity

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

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

SublimeText3 Mac版

SublimeText3 Mac版

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

メモ帳++7.3.1

メモ帳++7.3.1

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター