Redis学習ノート:Redis概要
8575 ワード
一、NoSQLと関係型データベースの違い
NoSQL非関係型データベース:Redis、MongoDB、HBAseなど、Key-Valueストレージに基づいてコマンド操作を採用.
リレーショナル・データベース:Oracle、MySQL、DB 2、SQL Serverなど、テーブル構造に基づいて格納され、SQL操作が使用されます.
二、Redisの紹介
Redisはイタリア人Salvatore Sanfilippo(ハンドル名:antirez)が開発したメモリキャッシュデータベースです.Redisフルネーム:Remote Dictionary Server(リモート・データ・ウェア)
サービス)は、C言語で作成された、典型的なNoSQLデータベースサーバです.Redisは、String、Hash、List、Set、
Zset(Sorted Set).
三、Redisの特徴
メリット:は非常に高性能です.Redisは毎秒10万の読み書き周波数をサポートします. は、String、Hash、List、Set、Zsetなど多くのデータ型を含む豊富なデータ型をサポートしています. 原子性:すべての操作は原子性である(一緒に成功するか、一緒に失敗する). は、メモリデータをデータファイルに同期する永続化操作をサポートします. は、トランザクション、メッセージングなどの機能を提供します.
欠点:メモリデータベースであるため、1台のマシンが格納するデータ量は、マシン自体のメモリサイズに依存します.Redis自体にはKeyの期限切れポリシーがあるが、 の事前見積りと節約が必要である.
メモリ、メモリの増加が速すぎる場合は、定期的にデータを削除する必要があります.完全再同期を行う場合、rdbファイルを生成して転送する必要があるため、ホストのCPUが占有され、ネットワークの帯域幅が消費される.Redis 2.8のバージョンでは、部分的に再同期された がありますが
機能ですが、新しいオンラインのスペアなど、完全に再同期する可能性があります.プロファイルを変更した後、ハードディスク(HDD)のデータをメモリにロードするのを再起動すると、時間がかかります.この過程でRedisはサービスを提供できない.
コメント:
システムでは、通常Redisをデータキャッシュとして使用します.
≪クエリー・キャッシュ|Query Cache|emdw≫:最初のクエリーではデータベースからデータが取り出してキャッシュに入れられ、その後のクエリーではキャッシュからデータが読み出されます.
キャッシュの追加/更新:ユーザーデータを検出してキャッシュに入れ、ユーザーに応答し、バックグラウンドでスレッドを開いてデータ処理を取ります.
四、Redis常用データ型
Redisでよく使われるデータ型は、String、Hash、List、Set、Zsetの5種類.
String--文字列
Stringは簡単なKeyValueタイプで、ValueはStringだけでなく、数字(数字タイプがLongで表される場合、encodingは整数であり、その他はすべて
sdshdrは文字列として)、List、Set、Zsetに含まれる独立した要素タイプはRedis Stringタイプである.StringタイプのValueは最大512 MBです.
Hash--辞書
Hashは最もリレーショナル・データベース構造に近いデータ型であり、データベース内の1つのレコードまたはプログラム内の1つのオブジェクトをhashmapに変換してRedisに格納することができる.Memcachedでは
構造化されたいくつかの情報はhashmapにパッケージ化され、クライアントがシーケンス化された後に、ユーザのニックネーム、年齢、性別などの文字列の値として格納されることが多い.
Hashのキー値対個数は最大2^32−1(4294967295)個である.
List--リスト
Listははっきりとチェーンテーブルタイプ(両端チェーンテーブル)であり、主な機能はpush、pop、1つの範囲のすべての値を取得するなどであり、その中のKeyはチェーンテーブルの名前と理解できる.Redisでは、Listは
は、LPUSHコマンドを使用してリストヘッダに要素を挿入したり、RPUSHコマンドを使用してリストの最後に要素を挿入したりするなど、Redis Stringのリストです.この2つのコマンドが
1つが空のKeyに作用すると,新しいリストが作成される.リストの要素数は最大2^32−1(4294967295)個である.
Set-コレクション
Setは集合であり,集合の概念は重複しない値の組合せである.Redisが提供するSetデータ構造を利用して,いくつかの集合的なデータを格納することができる.RedisではSetがRedisです
Stringの無秩序集合には重複要素は許されず,Setに対する操作には交差,並列,差分などがある.Setの要素数は最大2^32−1(4294967295)個である.
ZSet(Sorted Set)--秩序化された集合
Setと比較して、Sorted Setは、Set内の要素に重みパラメータscoreを追加し、セット内の要素をscoreで秩序化できるようにし、秩序化されたZsetについては、依然として
SORTコマンドを使用して、ASC|DESCパラメータを指定してソートします.Zsetの要素数は最大2^32−1(4294967295)個である.
五、Redis操作コマンド
5.1、文字列操作
5.2、ハッシュ操作
5.3、リスト操作
5.4、集合操作
5.5、秩序ある集合
5.6、key操作
六、Redisファイルフォーマット
Redisでは、フルデータとインクリメンタルリクエストの2つのファイル形式が使用されています.
フルデータ:メモリのデータをディスクに書き込むことで、次回ファイルを読み込むときにロードしやすくなります.
増分要求:メモリの中のデータを操作要求にシーケンス化して、ファイルを読み取ってreplayしてデータを得るために用いて、シーケンス化の操作はSET、RPUSH、SADD、ZADDを含む.
備考:Redisのストレージはメモリストレージ、ディスクストレージ、logファイルの3つの部分に分けられ、プロファイルには3つのパラメータが構成されています.
七、Redis応用シーン
(1)セッションキャッシュ(SessionCache)
(2)フルページキャッシュ(FPC)
(3)キュー
(4)ランキング/カウンタ
(5)発行/購読
参照先:
https://blog.csdn.net/weixin_39671217/article/details/78021732
NoSQL非関係型データベース:Redis、MongoDB、HBAseなど、Key-Valueストレージに基づいてコマンド操作を採用.
リレーショナル・データベース:Oracle、MySQL、DB 2、SQL Serverなど、テーブル構造に基づいて格納され、SQL操作が使用されます.
二、Redisの紹介
Redisはイタリア人Salvatore Sanfilippo(ハンドル名:antirez)が開発したメモリキャッシュデータベースです.Redisフルネーム:Remote Dictionary Server(リモート・データ・ウェア)
サービス)は、C言語で作成された、典型的なNoSQLデータベースサーバです.Redisは、String、Hash、List、Set、
Zset(Sorted Set).
三、Redisの特徴
メリット:
欠点:
メモリ、メモリの増加が速すぎる場合は、定期的にデータを削除する必要があります.
機能ですが、新しいオンラインのスペアなど、完全に再同期する可能性があります.
コメント:
システムでは、通常Redisをデータキャッシュとして使用します.
≪クエリー・キャッシュ|Query Cache|emdw≫:最初のクエリーではデータベースからデータが取り出してキャッシュに入れられ、その後のクエリーではキャッシュからデータが読み出されます.
キャッシュの追加/更新:ユーザーデータを検出してキャッシュに入れ、ユーザーに応答し、バックグラウンドでスレッドを開いてデータ処理を取ります.
四、Redis常用データ型
Redisでよく使われるデータ型は、String、Hash、List、Set、Zsetの5種類.
String--文字列
Stringは簡単なKeyValueタイプで、ValueはStringだけでなく、数字(数字タイプがLongで表される場合、encodingは整数であり、その他はすべて
sdshdrは文字列として)、List、Set、Zsetに含まれる独立した要素タイプはRedis Stringタイプである.StringタイプのValueは最大512 MBです.
Hash--辞書
Hashは最もリレーショナル・データベース構造に近いデータ型であり、データベース内の1つのレコードまたはプログラム内の1つのオブジェクトをhashmapに変換してRedisに格納することができる.Memcachedでは
構造化されたいくつかの情報はhashmapにパッケージ化され、クライアントがシーケンス化された後に、ユーザのニックネーム、年齢、性別などの文字列の値として格納されることが多い.
Hashのキー値対個数は最大2^32−1(4294967295)個である.
List--リスト
Listははっきりとチェーンテーブルタイプ(両端チェーンテーブル)であり、主な機能はpush、pop、1つの範囲のすべての値を取得するなどであり、その中のKeyはチェーンテーブルの名前と理解できる.Redisでは、Listは
は、LPUSHコマンドを使用してリストヘッダに要素を挿入したり、RPUSHコマンドを使用してリストの最後に要素を挿入したりするなど、Redis Stringのリストです.この2つのコマンドが
1つが空のKeyに作用すると,新しいリストが作成される.リストの要素数は最大2^32−1(4294967295)個である.
Set-コレクション
Setは集合であり,集合の概念は重複しない値の組合せである.Redisが提供するSetデータ構造を利用して,いくつかの集合的なデータを格納することができる.RedisではSetがRedisです
Stringの無秩序集合には重複要素は許されず,Setに対する操作には交差,並列,差分などがある.Setの要素数は最大2^32−1(4294967295)個である.
ZSet(Sorted Set)--秩序化された集合
Setと比較して、Sorted Setは、Set内の要素に重みパラメータscoreを追加し、セット内の要素をscoreで秩序化できるようにし、秩序化されたZsetについては、依然として
SORTコマンドを使用して、ASC|DESCパラメータを指定してソートします.Zsetの要素数は最大2^32−1(4294967295)個である.
五、Redis操作コマンド
5.1、文字列操作
set key value // value
get key // value
strlen key // value
incr key // value 1
incrby key i // value i
decr key // value 1
decrby key i // value i
append key value // key value
5.2、ハッシュ操作
hset key //
hmset key //
hget key //
hmget key 1 2 //
hlen key //
hkeys key //
hdel key //
5.3、リスト操作
lpush key value // (key , )
rpush key value //
lpop key //
rpop key //
lrem key count value // value
lindex key index // index value
lrange key start end //
linsert key before|after //
lset key index value // index value
llen key //
5.4、集合操作
sadd key value value //
srem key value // value
scard key //
smembers key //
srandmember key count // count
sinter key1 key2 // ,key1 key2
sunion key1 key2 // ,
sdiff key1 key2 // ,key1 ,key2
5.5、秩序ある集合
zadd key score value //
zrem key value //
zcard key //
zrange key start end // ( )
zrevrange key start end // ( )
zrevrank key value // value ( )
zrank key value // value ( )
5.6、key操作
keys pattern // key
del key // key
expire key time // ( )
type key // value
rename key newkey // key
六、Redisファイルフォーマット
Redisでは、フルデータとインクリメンタルリクエストの2つのファイル形式が使用されています.
フルデータ:メモリのデータをディスクに書き込むことで、次回ファイルを読み込むときにロードしやすくなります.
増分要求:メモリの中のデータを操作要求にシーケンス化して、ファイルを読み取ってreplayしてデータを得るために用いて、シーケンス化の操作はSET、RPUSH、SADD、ZADDを含む.
備考:Redisのストレージはメモリストレージ、ディスクストレージ、logファイルの3つの部分に分けられ、プロファイルには3つのパラメータが構成されています.
七、Redis応用シーン
(1)セッションキャッシュ(SessionCache)
(2)フルページキャッシュ(FPC)
(3)キュー
(4)ランキング/カウンタ
(5)発行/購読
参照先:
https://blog.csdn.net/weixin_39671217/article/details/78021732