Redisエントリー構成


REmote DIctionary Serverは、key-valueストレージシステムによってオープンソースであり、ANSI C言語を使用して作成され、BSDプロトコルを遵守し、ネットワークをサポートし、メモリベースで持続可能なログ型、Key-Valueデータベースであり、複数の言語のAPIを提供する.
値(value)は、文字列(String)、ハッシュ(Map)、リスト(list)、セット(sets)、およびシーケンスセット(sorted sets)などのタイプであることができるため、通常、データ構造サーバと呼ばれる.
Redisの特徴:
  • はデータの永続化をサポートし、メモリ内のデータをディスクに保存し、再起動時に再ロードして使用することができます.
  • は、単純なkey-valueタイプのデータだけでなく、list、set、zset、hashなどのデータ構造の記憶も提供する.
  • は、データのバックアップ、すなわちmaster-slaveモードのデータバックアップをサポートします.
  • は非常に高性能です.読める速度は110000回/s、書く速度は81000回/sです.
  • 豊富なデータ型–バイナリのStrings,Lists,Hashes,SetsおよびOrdered Setsデータ型操作をサポートします.
  • 原子–Redisのすべての操作は原子的であり、実行に成功するか、失敗して完全に実行されないかを意味します.単一の操作は原子的である.複数のオペレーションは、MULTIおよびEXEC命令によってパッケージされたトランザクション、すなわち原子性もサポートします.
  • の豊富な機能–Redisはpublish/subscribe、通知、keyの期限切れなどの機能もサポートしています.

  • ダウンロード先:https://github.com/MSOpenTech/redis/releases.
    CONFIGコマンドは構成項目を表示または設定します.
        CONFIG GET loglevel  CONFIG SET loglevel "notice"

    redis.conf構成項目の説明は以下の通りです.
    1.Redisのデフォルトはデーモンプロセスではありません.この構成項目を変更してyesを使用してデーモンプロセスを有効にすることができます.
        daemonize no
    2.Redisがデーモン方式で実行する場合、Redisはデフォルトでpidを/var/run/redisに書き込む.pidファイル、pidfileで指定できます
        pidfile/var/run/redis.pid
    3.Redisリスニングポートを指定します.デフォルトポートは6379です.
        port 6379
    4.バインドされたホストアドレス
        bind 127.0.0.1
    5.クライアントタイムアウト時間、0を指定した場合、この機能をオフにする
        timeout 300
    6.ログ・レコード・レベルを指定します.Redisでは、debug、verbose、notice、warningの4つのレベルがサポートされています.デフォルトはverboseです.
        loglevel verbose
    7.ログ記録方式、デフォルトは標準出力である.Redisがデーモン方式で実行され、ここでログ記録方式が標準出力であるように構成されている場合、ログは/dev/nullに送信される
        logfile stdout
    8.データベースの数を設定し、デフォルトのデータベースは0であり、SELECTコマンドを使用して接続上のデータベースidを指定することができる.
        databases 16
    9.どのくらいの時間内に、何回更新操作があるかを指定し、データをデータファイルに同期し、複数の条件を合わせることができる
        save
    Redisのデフォルトプロファイルには、次の3つの条件があります.
        save 900 1
        save 300 10
        save 60 10000
    それぞれ900秒(15分)に1つの変更があり、300秒(5分)に10つの変更があり、60秒に10000の変更があることを示します.
     
    10.ローカル・データベースに格納するときにデータを圧縮するかどうかを指定します.デフォルトはyesです.RedisはLZF圧縮を採用しています.CPUの時間を節約するために、このオプションをオフにすることができますが、データベース・ファイルが大きくなります.
        rdbcompression yes
    11.ローカルデータベースのファイル名を指定します.デフォルトはdumpです.rdb
        dbfilename dump.rdb
    12.ローカル・データベースの保管ディレクトリの指定
        dir ./
    13.本機がslavサービスである場合、マスターサービスのIPアドレスとポートを設定し、Redis起動時に自動的にマスターからデータ同期を行う
        slaveof
    14.masterサービスがパスワード保護を設定した場合、slavサービスはmasterのパスワードに接続する
        masterauth
    15.Redis接続パスワードを設定し、接続パスワードを設定した場合、クライアントはRedis接続時にAUTHコマンドでパスワードを提供する必要があり、デフォルトで閉じる
        requirepass foobared
    16.同一時間の最大クライアント接続数を設定し、デフォルトは無制限であり、Redisが同時に開くことができるクライアント接続数はRedisプロセスが開くことができる最大ファイル記述子数であり、maxclients 0を設定すると制限しないことを示す.クライアント接続数が制限に達すると、Redisは新しい接続を閉じ、max number of clients reachedエラーメッセージをクライアントに返します.
        maxclients 128
    17.Redisの最大メモリ制限を指定します.Redisは起動時にメモリにデータをロードします.最大メモリに達すると、Redisは期限切れまたは期限切れになるKeyをクリアしようとします.このメソッドの処理後も最大メモリ設定に達し、書き込み操作はできませんが、読み取り操作はできます.Redisの新しいvmメカニズムは、Keyをメモリに保存し、Valueはswap領域に保存します.
        maxmemory
    18.更新操作のたびにログを記録するかどうかを指定します.Redisはデフォルトでは非同期でディスクにデータを書き込みます.オンにしないと、電源が切れたときにしばらくの間データが失われる可能性があります.redis自体の同期データファイルは上記save条件で同期されるため、一定期間メモリにしか存在しないデータもあります.デフォルトはno
        appendonly no
    19.更新ログファイル名を指定します.デフォルトはappendonlyです.aof
         appendfilename appendonly.aof
    20.更新ログ条件を指定します.3つのオプション値があります.no:オペレーティングシステムがデータキャッシュをディスクに同期することを示します(速い)always:更新操作のたびにfsync()を手動で呼び出してディスクにデータを書き込むことを示します(遅い、安全な)everysec:毎秒同期することを示します(折衷、デフォルト値)
        appendfsync everysec
    21.仮想メモリメカニズムを有効にするかどうかを指定し、デフォルト値はnoである.簡単に説明すると、VMメカニズムはデータをページごとに保存し、Redisによってアクセス量の少ないページであるコールドデータswapをディスクに、アクセスの多いページはディスクによって自動的にメモリに取り替える.
         vm-enabled no
    22.仮想メモリファイルパス、デフォルトは/tmp/redis.swap、複数のRedisインスタンス共有不可
         vm-swap-file/tmp/redis.swap
    23.vm-max-memoryより大きいすべてのデータを仮想メモリに格納します.vm-max-memoryの設定がどんなに小さくても、すべてのインデックスデータはメモリに格納されます(Redisのインデックスデータはkeysです).つまり、vm-max-memoryが0に設定されている場合、実際にはすべてのvalueがディスクに存在します.既定値は0
         vm-max-memory 0
    24.Redis swapファイルは多くのpageに分かれており、1つのオブジェクトは複数のpageの上に保存できるが、1つのpageでは複数のオブジェクトに共有されてはいけない.vm-page-sizeは記憶されているデータサイズに応じて設定され、多くの小さなオブジェクトが記憶されている場合、pageサイズは32または64 bytesに設定することが望ましい.大きなオブジェクトを格納する場合は、より大きなpageを使用し、不確定な場合はデフォルト値を使用します.
         vm-page-size 32
    25.swapファイルのpage数を設定します.ページテーブル(ページの空きや使用を示すbitmap)がメモリに格納されているため、ディスク上で8つのpagesごとに1 byteのメモリが消費されます.
         vm-pages 134217728
    26.swapファイルにアクセスするスレッド数を設定します.マシンのコア数を超えないほうがいいです.0に設定すると、swapファイルに対する操作はすべてシリアルで、比較的長い遅延をもたらす可能性があります.既定値は4
         vm-max-threads 4
    27.クライアントへの応答時に、より小さなパケットを1つのパケットに統合して送信するか、デフォルトでオンに設定
        glueoutputbuf yes
    28.一定の数または最大の要素がある臨界値を超える場合に、特殊なハッシュアルゴリズムを採用することを指定する
        hash-max-zipmap-entries 64
        hash-max-zipmap-value 512
    29.リセットハッシュをアクティブ化するかどうかを指定します.デフォルトはオンです.
        activerehashing yes
    30.同じホスト上の複数のRedisインスタンス間で同じプロファイルを使用しながら、各インスタンスが独自の特定のプロファイルを持つ他のプロファイルを含むことを指定します.
        include/path/to/local.conf
    デーモンプロセスとは?
    デーモンプロセス(Daemon Process)は、一般的に言われるデーモンプロセス(精霊プロセス)であり、Linuxのバックグラウンドサービスプロセスである.これは、通常、制御端末とは独立して、あるタスクを周期的に実行したり、発生したイベントの処理を待ったりする生存期間の長いプロセスです.
    守護プロセスは特殊な孤児プロセスであり、このプロセスは端末から離れているのに、なぜ端末から離れているのだろうか.端末から離脱するのは、プロセスが任意の端末で生成された情報によって中断されることを避けるためであり、実行中の情報も任意の端末に表示されない.linuxでは、各システムがユーザと交流するインタフェースを端末と呼ぶため、この端末から実行されるプロセスはすべてこの端末に依存し、この端末はこれらのプロセスの制御端末と呼ばれ、制御端末が閉じられると、対応するプロセスは自動的に閉じる.
    redis外部ネットワークアクセスの構成
    redisが使用するセキュリティポリシーのため、デフォルトではローカルアクセスのみが許可されます.簡単な構成で、外部ネットワークへのアクセスを許可する必要があります.
    redisのプロファイルを変更し、bind情報をすべてマスクします.
    # bind 192.168.1.100 10.0.0.1 
    # bind 192.168.1.8 
    # bind 127.0.0.1

    変更が完了したら、redisサービスを再起動する必要があります.
    Linuxのファイアウォール(iptables)を変更し、redisサービスポートを開きます.デフォルトは6379です.
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT 
    -A INPUT -j REJECT –reject-with icmp-host-prohibited

    Redisのファイアウォールは必ずREJECTの前に配置してください.次にサービスiptables restartを実行します.