なぜRedisはなぜこんなに人気があるのか

3415 ワード

今では多くの開発者がRedisを聞いたことがあります.Redisは、現在市場で最も優れたオープンソースメモリNoSQLデータベースの1つです.キー値検索、キュー、ハッシュなどのフロントエンドおよびバックエンドサービスに非常に役立ちます.
一、Redisとは何ですか.
Redisの公式紹介によると、Redisはオープンソース(BSDライセンス)であり、メモリデータ構造記憶であり、文字列、ハッシュテーブル、リスト、集合、秩序集合、ビットマップ、hyperlogsなどのデータ型をサポートするデータベース、キャッシュ、メッセージエージェントとして使用される.
二、RedisとMemcached
Redisはデータ構造サーバです.キー値データストレージとして、RedisはMemcachedに似ていますが、Memcachedよりも2つの主な利点があります.より多くのデータ型と持続性をサポートします.
永続化により、不安定な一時キャッシュではなく、Redisを正当なデータベースとして操作できます.再起動すると、Memcached情報が失われます.しかし、Redisデータはまだ存在します.
Redisは、複数のタイプのデータを格納することをサポートします.Memcachedと同様に文字列を使用できます.また、hash(ハッシュ)、set(すべての異なる値の未ソート)、zset(すべての異なる値のソート)、list(重複したソートを含む可能性がある)を処理することもできます.
三、Redisはどのように動作しますか?
データベースはディスクまたはSSDにデータを格納し、Redisのデータはメモリに存在します.ディスクにアクセスする必要がないため、Redisなどのメモリデータストレージは、検索時間の遅延を回避し、数マイクロ秒でデータにアクセスできます.Redisは、さまざまなデータ構造、高可用性、地理的スペース、Luaスクリプト、トランザクション、ディスク持続性、クラスタサポートを提供し、リアルタイムのインターネット・レベルのアプリケーションの構築をより簡単にします.
四、Redis持続化
2つの異なる方法で持続性を実現できるようになりました.1つはスナップショットと呼ばれ、半持続性モードで、指定された時間間隔でデータセットのポイントスナップショットを生成し、RDB(Redis DataBase)ダンプフォーマットで記述します.バージョン1.1から、より安全な代替案AOF(Append Only File)があり、RDBの不足(データの不一致)を補うために、各書き込み操作をログ形式で記録し、ファイルに追加する.
五、RDBとAOF、どちらを使えばいいですか?
一般的に、PostgreSQLに匹敵するデータセキュリティを達成するには、RDBとAOFの2つの永続化機能を同時に使用する必要があります.
AOFのデフォルトでは、Redisは2秒ごとにファイルシステムにデータを書き込み、必要に応じて時間を設定します.デフォルトでシステムに障害が発生した場合、数秒のデータしか失われません.数分以内のデータ損失に耐えられる場合は、RDB永続化のみを使用できます.
多くの人がAOFを単独で使用していますが、RDBスナップショットを頻繁に行うとデータベースのバックアップが容易になり、起動速度も速くなり、AOFエンジンのバグも回避されるため、これは奨励されません.
六、よくあるケース
≪キャッシュ|Cache|Eas≫-高パフォーマンスのため、読み書き操作量が従来のデータベースの機能を上回る場合、Redisで解決できます.Redisは、ディスクにデータを永続的に保存し、データ型を豊富にすることができるため、従来のMemcachedキャッシュソリューションの絶好の代替案です.
≪パブリケーションとサブスクリプション|Publish and Subscription|emdw≫:バージョン2.0から、Redisは、パブリケーション/サブスクリプション・メッセージング・サンプルを使用してデータを配布する機能を提供します.
キュー-Resqueのようなアイテムは、Redisをキューバックグラウンドジョブのバックエンドとして使用します.
ゲームランキング-Redisは、リアルタイムランキングを構築することを求めているゲーム開発者の人気選択です.Redis秩序セットデータ構造を直接使用することができます.この構造は要素の一意性を実現し、ユーザーのスコアでソートされたリストを維持することができます.タイムスタンプをスコアとして使用したり、順序セットを使用してタイムシーケンスデータを処理したりすることもできます.
リアルタイム分析-Redisは、メモリ内のデータストレージとして使用され、リアルタイムデータの抽出、処理、分析をサブミリ秒の遅延で行うために、ストリーム処理プラットフォーム(例えば、Apache Kafka)と組み合わせて使用され得る.Redisは、ソーシャルメディア分析、広告配信、パーソナライズなど、使用例をリアルタイムで分析する理想的な選択です.
七、例Redis基本コマンド
次に、Redis-CLI基本コマンドの操作を簡単に説明します.デフォルトでは、Redis-CLIはポート6379で実行されます.
SET(セットキー)
127.0.0.1:6379> SET foo "Hello World"
OK //     

GET(鍵取得)
127.0.0.1:6379> GET foo
"Hello World" //     

DEL(鍵の削除)
127.0.0.1:6379> GET foo 
"Hello World" 
127.0.0.1:6379> DEL foo
(integer) 1 //       
127.0.0.1:6379> GET foo
(nil) //      ,   nil。

SETEX(有効期限を設定する鍵)
127.0.0.1:6379> SETEX foo 40 "I said, Hello World!"
OK //      40   

TTL(鍵の残り時間)
127.0.0.1:6379> TTL foo
(integer) 36 //36   

PERSIST(鍵削除期間)
127.0.0.1:6379> PERSIST foo
(integer) 1 //        (      )

RENAME(現在の既存鍵の名前を変更)
127.0.0.1:6379> RENAME foo bar
OK //   'foo'     'bar'

FLUSHALL(これまで保存していたすべてのコンテンツをクリア)
127.0.0.1:6379> flushall
OK //     

八、まとめ
Redisは極めて豊富なデータ型と極めて高い性能を持ち、性能的に読む速度は110000回/s、書く速度は81000回/sである.しかし、Redisは万能ではなく、物理メモリの制限を受け、大量のデータの高性能読み書きとして使用できないため、Redisが適したシーンは主に小さいデータ量の高性能操作と演算に限られている.