redisセキュリティおよび必須知識
redisセキュリティおよび必須知識
一.redisセキュリティ
redisのパスワードコマンドラインのモードを設定します(再起動後に失効します):パスワードを表示します:
CONFIG GET requirepass
パスワード認証:
AUTH password
パスワードの設定:
CONFIG SET requirepass "password"
redisプロファイルにパスワードを設定し、requirepassの後に直接パスワードを追加すればいいです.
requirepass abc123456
プロファイルで使用できないコマンドを指定します.
二.redis性能試験
性能テストとは,redisの応答速度を大きな同時で見ることである.
-h
ホスト名の指定
-p
ポートの指定
-c
コンカレント数の指定
-n
リクエスト数の指定
-q
強制的にredisを終了します.query/sec値のみ表示
-l
生産サイクル、永久実行テスト
三.永続化メカニズム
redisは永続化をサポートするメモリ・データベースです.つまり、redisは常にメモリ内のデータベースをハードディスクに同期して永続化を保証する必要があります.redisは、2つの永続化方式をサポートします.
RDB(snapshottingスナップショットの方式(デフォルト))AOF(append-only file)の方式
RDB方式:RDBはデフォルトの永続化方式であり、メモリ内のデータをスナップショットでバイナリファイルに書き込む(dump.rdb).構成:
save 900 1#900秒以内に1 keyを超えると、開始スナップショット保存save 300 10#300秒以内に10 keyを超えると、開始スナップショット保存save 60 10000#60秒以内に10000 keyを超えると、開始スナップショット保存
aof方式:スナップショットは一定時間間隔またはルールで行われますが、redisが予期せぬダウンタイムになると、最後のスナップショットの変更データが失われます.aof方式はより良い持続化性能を有する.aofを使用すると、redisは受信した書き込みコマンドをwrite関数でファイルに追加し、redisが再起動するとファイルに保存されている書き込みコマンドを再実行してデータベース全体の内容をメモリに再構築します.もちろんosはカーネルにwriteの変更をキャッシュするので、すぐにディスクに書き込むのではなく、aof方式の永続化で一部の変更が失われる可能性があります.プロファイルを使用して、fsync関数でosをディスクに強制的に書き込むタイミングをredisに伝えることができます.構成:
四.redisトランザクション
redisトランザクションは、複数のコマンドを一度に実行できます.1つのトランザクションの開始から実行までに、次の3つのフェーズがあります.取引開始(MULTI) コマンドエンキュー 実行トランザクション(EXEC) DISCARD
トランザクションをキャンセルし、トランザクション内のすべてのコマンドを破棄
EXEC
すべてのトランザクション・ブロックのコマンドの実行
MULTI
トランザクション・ブロックの開始をマーク
UNWATCH
WACTCHコマンドによるすべてのキーの監視を解除
WATCH key [key ...]
1つ(または複数)のkeyを監視し、トランザクションが実行される前に他のコマンドで変更された場合、トランザクションは中断されます.
一.redisセキュリティ
redisのパスワードコマンドラインのモードを設定します(再起動後に失効します):パスワードを表示します:
CONFIG GET requirepass
パスワード認証:
AUTH password
パスワードの設定:
CONFIG SET requirepass "password"
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> CONFIG SET requirepass "abc123"
OK
127.0.0.1:6379> CONFIG GET requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH "abc123"
OK
127.0.0.1:6379> CONFIG GET requirepass
1) "requirepass"
2) "abc123"
redisプロファイルにパスワードを設定し、requirepassの後に直接パスワードを追加すればいいです.
requirepass abc123456
プロファイルで使用できないコマンドを指定します.
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command SHUTDOWN ""
rename-command KEYS ""
rename-command MONITOR ""
二.redis性能試験
性能テストとは,redisの応答速度を大きな同時で見ることである.
redis-benchmark
というredisが持参したテストコマンドでテストできます.# redis-benchmark -n 100000 -q
PING_INLINE: 62111.80 requests per second
PING_BULK: 50100.20 requests per second
SET: 68823.12 requests per second
GET: 69348.12 requests per second
INCR: 69979.01 requests per second
LPUSH: 67842.61 requests per second
RPUSH: 68965.52 requests per second
LPOP: 69589.42 requests per second
RPOP: 66889.63 requests per second
SADD: 65061.81 requests per second
HSET: 52938.06 requests per second
SPOP: 56401.58 requests per second
LPUSH (needed to benchmark LRANGE): 45167.12 requests per second
LRANGE_100 (first 100 elements): 63451.78 requests per second
LRANGE_300 (first 300 elements): 47938.64 requests per second
LRANGE_500 (first 450 elements): 67796.61 requests per second
LRANGE_600 (first 600 elements): 68352.70 requests per second
MSET (10 keys): 63131.31 requests per second
-h
ホスト名の指定
-p
ポートの指定
-c
コンカレント数の指定
-n
リクエスト数の指定
-q
強制的にredisを終了します.query/sec値のみ表示
-l
生産サイクル、永久実行テスト
三.永続化メカニズム
redisは永続化をサポートするメモリ・データベースです.つまり、redisは常にメモリ内のデータベースをハードディスクに同期して永続化を保証する必要があります.redisは、2つの永続化方式をサポートします.
RDB(snapshottingスナップショットの方式(デフォルト))AOF(append-only file)の方式
RDB方式:RDBはデフォルトの永続化方式であり、メモリ内のデータをスナップショットでバイナリファイルに書き込む(dump.rdb).構成:
save 900 1#900秒以内に1 keyを超えると、開始スナップショット保存save 300 10#300秒以内に10 keyを超えると、開始スナップショット保存save 60 10000#60秒以内に10000 keyを超えると、開始スナップショット保存
aof方式:スナップショットは一定時間間隔またはルールで行われますが、redisが予期せぬダウンタイムになると、最後のスナップショットの変更データが失われます.aof方式はより良い持続化性能を有する.aofを使用すると、redisは受信した書き込みコマンドをwrite関数でファイルに追加し、redisが再起動するとファイルに保存されている書き込みコマンドを再実行してデータベース全体の内容をメモリに再構築します.もちろんosはカーネルにwriteの変更をキャッシュするので、すぐにディスクに書き込むのではなく、aof方式の永続化で一部の変更が失われる可能性があります.プロファイルを使用して、fsync関数でosをディスクに強制的に書き込むタイミングをredisに伝えることができます.構成:
appendonly yes # aof
appendfilename "appendonly.aof" # aof
# appendfsync always # ,
appendfsync everysec # ,
# appendfsync no # os,
四.redisトランザクション
redisトランザクションは、複数のコマンドを一度に実行できます.1つのトランザクションの開始から実行までに、次の3つのフェーズがあります.
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SET name "jack"
QUEUED
127.0.0.1:6379> GET name
QUEUED
127.0.0.1:6379> SADD tag "C++" "python" "java" "c#"
QUEUED
127.0.0.1:6379> SMEMBERS tag
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) "jack"
3) (integer) 4
4) 1) "java"
2) "C++"
3) "c#"
4) "python"
トランザクションをキャンセルし、トランザクション内のすべてのコマンドを破棄
EXEC
すべてのトランザクション・ブロックのコマンドの実行
MULTI
トランザクション・ブロックの開始をマーク
UNWATCH
WACTCHコマンドによるすべてのキーの監視を解除
WATCH key [key ...]
1つ(または複数)のkeyを監視し、トランザクションが実行される前に他のコマンドで変更された場合、トランザクションは中断されます.