10分クイックスタートRedis
ここで修正を更新し続けます.私は使用中に、いくつかの問題を記録します.
Redisインストール
公式コンパイルインストール
テスト
これは
EPELソースでインストール
ソースインストールの問題は、最新のインストールができないか、Redisバージョンを指定できないことです.
ソースがインストールされていない場合は、次の方法でソースをインストールします.
Redisのアップグレード
まず、次のrepos、EPEL、REMIがインストールされていることを確認します.
次に、EPEL repoから関連する依存関係(jemalloc):
インストールする前に、古いRedisデーモンを停止する必要があります.
次に、更新されたバージョンのRedisをインストールします.
サービス管理
Redisデーモンを再起動し、再起動させると自動的に起動します.
基本サービス操作
バージョンの表示
現在インストールされているRedisバージョンを確認します.
起動
Redisインストールディレクトリには
プロファイル
権限を変更し、chkconfigコマンドでシステムredisサービスをチェック、設定して開く
次の2行の注釈を
上記の注記は、redisサービスは、実行レベル2、3、4、5で起動または停止されなければならないことを意味し、起動の優先度は90であり、停止の優先度は10である.
Redis起動警告エラー解決 WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to/etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. WARNING: The TCP backlog setting of 511 cannot be enforced because/proc/sys/net/core/somaxconn is set to the lower value of 128.
構成の変更
Redisのプロファイルは、Redisインストールディレクトリの下にあり、ファイル名は
コンフィギュレーション・アイテムはCONFIGコマンドで表示または設定できます.設定コマンドの設定
きほんそうさ
サポートされるデータ型
文字列
Hashes-ハッシュ値
Lists-リスト
ちくじしゅうごう
通知を開く
この特性でCPUの電力を消費するのは賢明ではないため、キースペースイベント通知はデフォルトで無効になっています.
キー値の説明
異なるコマンドによって生成されるイベント(Events generated by different commands)
次のリストに従って、異なるコマンドは異なるタイプのイベントを生成します.Redis Keyspace Notifications DELは、削除されたキーごとにdelイベントを生成する. RENAMEは2つのイベントを生成し、ソースキーにrename_を生成する.fromイベント、ターゲットキーにrenameを生成toイベント. EXPIREキーの有効期限が設定されているときにexpireイベントが発生するか、有効期限が設定されているキーが削除されるたびにexpiredイベントが発生します(EXPIREドキュメントを参照して詳細を参照). SORT STOREが新しいキーを設定するために使用されたときにsortstoreイベントが生成される.結果リストが空でSTOREオプションが使用され、すでに名前のキーが存在する場合、このキーは削除されるので、この条件下でdelイベントが発生するか、生成される. SETおよびそのすべての変種(SETEX,SETNX,GETSET)はsetイベントを生成する.しかしSETEXではexpireイベントも発生します. MSETは、キーごとに個別のsetイベントを生成する. SETRANGEはsetrangeイベントを生成します. INCR,DECR,INCRBY,DECRBYはいずれもincrbyイベントを発生する. INCRBYFLOATはincrbyfloatイベントを生成する. APPENDはappendイベントを生成する. LPUSHおよびLPUSHXは、可変の場合であっても、単一のlpushイベントを生成する. RPUSHおよびRPUSHXは、可変の場合であっても、単一のrpushイベントを生成する. RPOPはrpopイベントを生成する.最後の要素がリストからポップアップされたためにキーが削除されると、delイベントが発生します. LPOPはlpopイベントを生成します.最後の要素がリストからポップアップされたためにキーが削除されると、delイベントが発生します. LINSERTはlinsertイベントを生成します. LSETはlsetイベントを生成します. LREMはlremイベントを生成します.結果リストが空でキーが削除されると、delイベントが生成されます. LTRIMはltrimイベントを生成する.結果リストが空でキーが削除されると、delイベントが生成されます. RPOPLPUSHおよびBRPOLPUSHは、rpopイベントおよびlpushイベントを生成する.どちらの場合も、結果リストの長さがゼロでキーが削除されると、delイベントが生成されることが保証されます(lpushイベントは常にrpopイベントの後に渡されます). HSET、HSETNX、およびHMSETは、単一のhsetイベントを生成する. HINCRBYはhincrbyイベントを生成します. HINCRBYFLOATはhincrbyfloatイベントを生成する. HDELは、単一のhdelイベントを生成する.結果ハッシュが空でキーが削除されると、delイベントが生成されます. SADDは、可変の場合でも、単一のsaddイベントを生成する(even in the variadic case). SREMは、単一のsremイベントを生成する.結果セットが空でキーが削除されると、delイベントが生成されます. SMOVEは、ソースキーに対してsremイベントを生成し、ターゲットキーに対してsaddイベントを生成する. SPOPはspopイベントを生成する.結果セットが空でキーが削除されると、delイベントが生成されます. SINTERSTORE,SUIONSTORE,SDIFSTOREはそれぞれsinterstore,sunionostore,sdiffstoreイベントを生成する.特殊な場合、コレクションは空であり、結果を格納するキーはすでに存在し、キーが削除されるためdelイベントが発生します. ZINCRはzincrイベントを生成します. ZADDは、複数の要素が追加されても、単一のzaddイベントを生成する. ZREMは、複数の要素が削除されても、単一のzremイベントを生成する.結果が整列した集合が空であり、キーが生成されると、追加のdelイベントが発生します. ZREMBYSCOREは、単一のzrembyscoreイベントを生成する.結果が整列した集合が空であり、キーが生成されると、追加のdelイベントが発生します. ZREMBYRANKは、単一のzrembyrankイベントを生成する.結果が整列した集合が空であり、キーが生成されると、追加のdelイベントが発生します. ZINTERTOREとZUNIOnstorEは、それぞれzinterstoreイベントとzunionstoreイベントを生成します.特殊な場合、コレクションは空であり、結果を格納するキーはすでに存在し、キーが削除されるためdelイベントが発生します. 生存イベントに関連付けられたキーが期限切れでデータセットから削除されるたびにexpiredイベントが発生する. は、maxmemoryポリシーによってキーがデータセットから淘汰されてメモリを節約するたびにevictedイベントを生成する.
リモートログイン接続を有効にする
netstatを使用してポートの使用状況を表示します.デフォルトのRedisポートは6379です.-t:TCPポート を表示することを示す-u:UDPポート を表示することを示す-l:リスニングソケット のみ表示-p:プロセス識別子とプログラム名が表示され、各ソケット/ポートはプログラムに属します. -n:DNSポーリングを行わず、IP(アクセラレータ可能) を表示する.
ファイアウォール構成の変更
ファイアウォール構成sudo vi/etc/sysconfig/iptablesの変更
プロファイルの変更
Redis protected-modeは3.2以降に加わる新しい特性で、Redis.confの注釈では,彼の具体的な役割と有効化条件を知ることができる.sudo vi/etc/redis.confで編集し、プロファイルを変更します.
使用可能な条件は2つあります. bind IP なしアクセスパスワードが設定されていません 有効にすると、lookback ip(127.0.0.1)からのみRedis cacheにアクセスできます.外部ネットワークからアクセスすると、対応するエラーメッセージが返されます.
原生モニタリング
現在のリンクのクライアント数と接続数
メモリの最大キー値と平均キー値データ
現在のキー値の表示
原生モニタ
redis-cli monitorは、すべてのseverが受信したコマンドと対応するクライアントアドレスを印刷します.
構成の説明
Redisインストール
公式コンパイルインストール
$ wget http://download.redis.io/releases/redis-4.0.0.tar.gz
$ tar xzvf redis-4.0.0.tar.gz -C /usr/local/
$ cd /usr/local/redis-4.0.0
$ make
$ make test
$ make install
# :
# mkdir -p /usr/local/bin
# cp -pf redis-server /usr/local/bin
# cp -pf redis-benchmark /usr/local/bin
# cp -pf redis-cli /usr/local/bin
# cp -pf redis-check-dump /usr/local/bin
# cp -pf redis-check-aof /usr/local/bin
テスト
make test
エラー$ make test
You need tcl 8.5 or newer in order to run the Redis test
make: *** [test] Error 1
これは
tcl
を取り付ける必要がありますwget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install
EPELソースでインストール
ソースインストールの問題は、最新のインストールができないか、Redisバージョンを指定できないことです.
yum --enablerepo=epel -y install redis
ソースがインストールされていない場合は、次の方法でソースをインストールします.
cd /etc/yum.repos.d/
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Redisのアップグレード
まず、次のrepos、EPEL、REMIがインストールされていることを確認します.
sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-6.rpm
--enablerepo=epel
パラメータを使用して、指定したソースのRedisバージョンを表示し、REMI repoのRedisバージョンを確認します.yum --enablerepo=epel info redis
# Loaded plugins: fastestmirror
# Loading mirror speeds from cached hostfile
# * base: centos.ustc.edu.cn
# * epel: mirrors.tuna.tsinghua.edu.cn
# * extras: centos.ustc.edu.cn
# * updates: mirrors.zju.edu.cn
# Available Packages
# Name : redis
# Arch : x86_64
# Version : 2.4.10
# Release : 1.el6
# Size : 213 k
# Repo : epel/x86_64
# Summary : A persistent key-value database
# URL : http://redis.io
# License : BSD
# Description : Redis is an advanced key-value store. It is similar to memcached but the data
# : set is not volatile, and values can be strings, exactly like in memcached, but
# : also lists, sets, and ordered sets. All this data types can be manipulated with
# : atomic operations to push/pop elements, add/remove elements, perform server
# : side union, intersection, difference between sets, and so forth. Redis supports
# : different kind of sorting abilities.
次に、EPEL repoから関連する依存関係(jemalloc):
yum --enablerepo=epel install jemalloc
インストールする前に、古いRedisデーモンを停止する必要があります.
service redis stop
次に、更新されたバージョンのRedisをインストールします.
sudo yum --enablerepo=remi install redis
サービス管理
Redisデーモンを再起動し、再起動させると自動的に起動します.
sudo service redis start
sudo chkconfig redis on
基本サービス操作
##
$ redis-server & nohup
##
$ redis-cli ping
##
$ redis-cli shutdown
#
$ redis-cli start
#
$ service redis start
#
$ service redis stop
#
$ redis-cli -p 6380
#
$ redis-server --port 6380 &
バージョンの表示
現在インストールされているRedisバージョンを確認します.
# Redis
$ redis-cli info | grep redis_version
#
$ redis-cli info | grep tcp_port
起動
Redisインストールディレクトリには
/usr/local/redis-4.0.0/utils
というディレクトリがあります.このディレクトリにはredis_init_script
というスクリプトがあります.このスクリプトを/etc/init.d
というディレクトリにコピーし、redis
と名付けます.cp /usr/local/redis-4.0.0/utils/redis_init_script /etc/init.d/redis
redis.conf
ファイルを/etc/redis
ディレクトリにコピーします.cp /usr/local/redis-4.0.0/redis.conf /etc/redis/6380.conf
プロファイル
6380.conf
はいくつかの場所を変更する必要があります# ,yes: ;no: ( )
daemonize yes
権限を変更し、chkconfigコマンドでシステムredisサービスをチェック、設定して開く
chmod +x /etc/init.d/redis
chkconfig redis on
次の2行の注釈を
/etc/init.d/redis
ファイルのヘッダに配置し、サポートされていないプロンプトservice redis does not support chkconfig
を設定しないでください.# chkconfig: 2345 90 10
# description: redis is a persistent key-value database
上記の注記は、redisサービスは、実行レベル2、3、4、5で起動または停止されなければならないことを意味し、起動の優先度は90であり、停止の優先度は10である.
Redis起動警告エラー解決
echo "vm.overcommit_memory=1" > /etc/sysctl.conf # vi /etcsysctl.conf , reboot
echo 1 > /proc/sys/vm/overcommit_memory #
echo 511 > /proc/sys/net/core/somaxconn
構成の変更
Redisのプロファイルは、Redisインストールディレクトリの下にあり、ファイル名は
redis.conf
です.デフォルトのRedisプロファイルはsudo vi /etc/redis.conf
ここで編集できますsudo vi /etc/redis.conf
コンフィギュレーション・アイテムはCONFIGコマンドで表示または設定できます.設定コマンドの設定
## redis
127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
## redis
127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
##
127.0.0.1:6379> CONFIG GET *
##
$ redis-cli config set notify-keyspace-events KEA
きほんそうさ
##
$ redis-cli
#
127.0.0.1:6379> ping
PONG
# mykey
127.0.0.1:6379> set mykey hello
OK
# mykey
127.0.0.1:6379> get mykey
"hello"
## mykey
127.0.0.1:6379> expire mykey 2
# redis
127.0.0.1:6379> config get *
# key
127.0.0.1:6379> keys *
# redis Key
127.0.0.1:6379> flushdb
127.0.0.1:6379> config get dir
# key
127.0.0.1:6379> dbsize
# key
127.0.0.1:6379> flushall
#
127.0.0.1:6379> exit
# Redis
# ,
# ,
# ( )
# CONFIG RESETSTAT , 。
127.0.0.1:6379> commandstats
cmdstat_get:calls=78,usec=608,usec_per_call=7.79
cmdstat_setex:calls=5,usec=71,usec_per_call=14.20
cmdstat_keys:calls=2,usec=42,usec_per_call=21.00
cmdstat_info:calls=10,usec=1931,usec_per_call=193.10
サポートされるデータ型
文字列
# , redis.
redis> SET name forezp
OK
# :
redis> get name
"forezp"
Hashes-ハッシュ値
redis > HMSET king username forezp password xxdxx age 22
redis > HGETALL king
1) "username"
2) "forezp "
3) "password "
4) "xxdxx "
5) "age "
6) "22"
Lists-リスト
redis> lpush pricess kenny
(integer) 1
redis 127.0.0.1:6379> lpush pricess jolin
(integer) 2
redis 127.0.0.1:6379> lpush pricess mayun
(integer) 3
redis 127.0.0.1:6379> lrange pricess 0 10
1) "kenny"
2) "jolin"
3) "mayun"
ちくじしゅうごう
redis > ZADD kindom 1 redis
(integer) 1
redis> ZADD kindom 2 mongodb
(integer) 1
redis > ZADD kindom 3 mysql
(integer) 1
redis > ZADD kindom 3 mysql
(integer) 0
redis > ZADD kindom 4 mysql
(integer) 0
redis > ZRANGE kindom 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
通知を開く
この特性でCPUの電力を消費するのは賢明ではないため、キースペースイベント通知はデフォルトで無効になっています.
redis.conf
のnotify-keyspace-events
を使用するか、CONFIG SET
を使用して通知を開きます.##
$ redis-cli config set notify-keyspace-events KEA
##
$ redis-cli --csv psubscribe '__key*__:*'
Reading messages... (press Ctrl-C to quit)
"psubscribe","__key*__:*",1
キー値の説明
K Keyspace events, published with __keyspace@__ prefix.
E Keyevent events, published with __keyevent@__ prefix.
g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
$ String commands
l List commands
s Set commands
h Hash commands
z Sorted set commands
x Expired events (events generated every time a key expires)
e Evicted events (events generated when a key is evicted for maxmemory)
A Alias for g$lshzxe, so that the "AKE" string means all the events.
異なるコマンドによって生成されるイベント(Events generated by different commands)
次のリストに従って、異なるコマンドは異なるタイプのイベントを生成します.Redis Keyspace Notifications
リモートログイン接続を有効にする
netstatを使用してポートの使用状況を表示します.デフォルトのRedisポートは6379です.
netstat -nlt|grep 6379
ファイアウォール構成の変更
ファイアウォール構成sudo vi/etc/sysconfig/iptablesの変更
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
プロファイルの変更
Redis protected-modeは3.2以降に加わる新しい特性で、Redis.confの注釈では,彼の具体的な役割と有効化条件を知ることができる.sudo vi/etc/redis.confで編集し、プロファイルを変更します.
# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
#
# When protected mode is on and if:
#
# 1) The server is not binding explicitly to a set of addresses using the
# "bind" directive.
# 2) No password is configured.
#
# The server only accepts connections from clients connecting from the
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
# sockets.
#
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
protected-mode yes
使用可能な条件は2つあります.
(error) DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the lookback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the --portected-mode no option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
原生モニタリング
現在のリンクのクライアント数と接続数
redis-cli --stat
現在接続されているクライアント数、接続数などを表示------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
4 1.27M 6 0 17340 (+0) 111
4 1.27M 6 0 17341 (+1) 111
4 1.27M 6 0 17342 (+1) 111
4 1.27M 6 0 17343 (+1) 111
メモリの最大キー値と平均キー値データ
redis-cli --bigkeys
は、現在使用されているメモリの最大キー値と平均キー値のデータに対して、-i
パラメータを指定したタイミングで現在のビューを表示することもできます.# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
[00.00%] Biggest string found so far 'asdf.js' with 3 bytes
[00.00%] Biggest string found so far 'wabg-tokeneyJhbGciOiJIUzI1NiJ9.NA.UGGRiB2I42rP-33cIMrcoPub7AzHgDlqHacAKFw1pfE' with 328 bytes
[00.00%] Biggest string found so far 'wabg-token-province' with 231042 bytes
-------- summary -------
Sampled 4 keys in the keyspace!
Total key length in bytes is 180 (avg len 45.00)
Biggest string found 'wabg-token-province' has 231042 bytes
4 strings with 231819 bytes (100.00% of keys, avg size 57954.75)
0 lists with 0 items (00.00% of keys, avg size 0.00)
0 sets with 0 members (00.00% of keys, avg size 0.00)
0 hashs with 0 fields (00.00% of keys, avg size 0.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)
現在のキー値の表示
redis-cli --scan
は、keys *
と同様の機能を提供し、現在のキー値の状況を正則的に表すことができる.$ redis-cli --scan
sess:K4xh-bxOBrcXpy9kEW87oiy-u7I2sAA5
asdf.js
sess:1tGNZSXW8GyoEQsbtpqkA5tMmSFp_ZIn
wabg-tokeneyJhbGciOiJIUzI1NiJ9.NA.UGGRiB2I42rP-33cIMrcoPub7AzHgDlqHacAKFw1pfE
sess:3e4NGIJd0wf1-RONeTt-FsXQj4EaVNjk
wabg-token-province
sess:UuCLAX2sWZ50fiIO1qvDgulf0XIZRd98
wabg-tokeneyJhbGciOiJIUzI1NiJ9.MQ.6z44GClzAsUED1M_UyxqdREdDKcYFnL9tSqd5ZhLhsY
sess:2HEchaRLYUoaa44IF1bB6mpik7lZjBb4
原生モニタ
redis-cli monitorは、すべてのseverが受信したコマンドと対応するクライアントアドレスを印刷します.
$ redis-cli monitor
OK
1472626566.218175 [0 127.0.0.1:62862] "info"
1472626571.220948 [0 127.0.0.1:62862] "exists" "aaa"
1472626571.223174 [0 127.0.0.1:62862] "set" "aaa" ""
1472626571.232126 [0 127.0.0.1:62862] "type" "aaa"
1472626571.243697 [0 127.0.0.1:62862] "pttl" "aaa"
1472626571.243717 [0 127.0.0.1:62862] "object" "ENCODING" "aaa"
1472626571.243726 [0 127.0.0.1:62862] "strlen" "aaa"
構成の説明
#redis.conf
# Redis configuration file example.
# ./redis-server /path/to/redis.conf
################################## INCLUDES ###################################
# redis 。
# include /path/to/local.conf
# include /path/to/other.conf
################################ GENERAL #####################################
# ,yes: ;no: ( )
daemonize yes
# 3.2 , , 。 bind 。
# ,redis , 。
# bind, 。 , no。
protected-mode yes
# redis
pidfile /var/run/redis/redis-server.pid
# redis 。
port 6379
# TCP ( ) ,
# Linux /proc/sys/net/core/somaxconn , 511,
# Linux 128。 ,
# 。 128, 。
# 2048 。 /etc/sysctl.conf :net.core.somaxconn = 2048, sysctl -p。
tcp-backlog 511
# redis IP , ,
bind 127.0.0.1
# unix socket redis 。
# unixsocket /var/run/redis/redis.sock
# unix socket
# unixsocketperm 700
# timeout, , 0 , 0。
timeout 0
# tcp keepalive 。 0, tcp SO_KEEPALIVE ,
# keepalive : 。 。
# Linux , keepalive,redis ack。 。
tcp-keepalive 0
# 。 :debug( , 、 ),
# verbose( , debug ),notice( , ),warn( )
loglevel notice
# 。 , 。 redis /dev/null。
logfile /var/log/redis/redis-server.log
# syslog
# syslog-enabled no
# syslog 。
# syslog-ident redis
# 、
# syslog-facility local0
# , DB 0。 ”SELECT “ db
databases 16
################################ SNAPSHOTTING ################################
#
# “save”
# sedis 。
# 900 (15 ) 1 key ( -- )
# 300 (5 ) 10 key ( -- )
# 60 (1 ) 10000 key ( -- )
save 900 1
save 300 10
save 60 10000
# RDB , ,yes: ,no: ,
# info rdb_last_bgsave_status RDB
stop-writes-on-bgsave-error yes
# rdb ,rdb LZF ,yes: , cpu 。no: ,
rdbcompression yes
# rdb 。 rdb , rdb CRC64 。
# , rdb , 10% , , 。
rdbchecksum yes
# rdb
dbfilename dump.rdb
# , 。rdb、aof
dir /var/lib/redis
################################# REPLICATION #################################
# ,slave master。
# slaveof
# master requirepass, slave master, master 。masterauth master , master 。
# masterauth
# , :1) slave-serve-stale-data yes( ), 。2) slave-serve-stale-data no, INFO SLAVOF ”SYNC with master in progress”。
slave-serve-stale-data yes
# , (yes), NO, ( )。
slave-read-only yes
# socket 。 redis ,disk socket。 slave slave , ,master rdb 。 2 :disk master rdb , rdb slave。socket master , rdb socket slave。disk , rdb , slave rdb 。socket slave 。 , socket 。
repl-diskless-sync no
#diskless , 0。 , slave rdb 。 , slave 。
repl-diskless-sync-delay 5
#slave ping 。 repl_ping_slave_period , 10 。
# repl-ping-slave-period 10
# 。master slave 。master slave repl-timeout, slave , slave 。slave master repl-timeout, master 。 repl-timeout repl-ping-slave-period , 。
# repl-timeout 60
# tcp tcp nodelay , yes no。 no, tcp nodelay。 master yes tcp nodelay , slave , 。 。 , , yes。
repl-disable-tcp-nodelay no
# , , 。 slave , master , , slave, 。 ,slave , slave 。 slave , , 1m。
# repl-backlog-size 5mb
#master slave ,repl-backlog-ttl 。 。
# repl-backlog-ttl 3600
# master ,Sentinel slave master。 slave, master。 0, 。
slave-priority 100
#redis master , min-slaves-to-write, slave N,mater 。master slave 。 N slave master , slave ,master 。 0 。
# min-slaves-to-write 3
# min-slaves-max-lag slave slave。
# min-slaves-max-lag 10
# 1 0 。
# Setting one or the other to 0 disables the feature.
# By default min-slaves-to-write is set to 0 (feature disabled) and
# min-slaves-max-lag is set to 10.
################################## SECURITY ###################################
#requirepass AUTH , 。 redis 。 , , 。 requirepass , redis , 15w , , 。
# requirepass foobared
# 。 CONFIG , , 。
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
# ,
# rename-command CONFIG ""
################################### LIMITS ####################################
# redis 。 10000 。
# redis slave , maxclients 32。
# maxclients,redis ’max number of clients reached’, 。
# maxclients 10000
# redis 。 , maxmemory-policy 。
# slave maxmemory 。 , maxmemory 。
# maxmemory
# maxmemory 。
# volatile-lru: LRU key。
# volatile-random: key。
# volatile-ttl: key, ( TTL)
# allkeys-lru: LRU key。
# allkeys-random: key。
# noeviction: key, 。
# , redis key , , 。
# redis , get 。
# :set setnx setex append incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby getset mset msetnx exec sort。
# maxmemory-policy noeviction
#lru 。 lru ttl , sample key, key 。
# maxmemory-samples 5
############################## APPEND ONLY MODE ###############################
# redis rdb , 。 redis , , save ,Append Only File , 。Redis appendonly.aof , Redis , RDB 。
appendonly no
#aof
appendfilename "appendonly.aof"
# aof
# no fsync, , 。
# always fsync, 。
# everysec fsync, 1s 。
appendfsync everysec
# aof rdb , IO,
# everysec always aof , fsync ,
# no-appendfsync-on-rewrite no。
# , yes, no,
# 。 yes rewrite fsync,
# , rewrite , no, yes。Linux fsync 30 。 30 。
no-appendfsync-on-rewrite no
# aof 。 aof aof ,
# aof Redis bgrewriteaof 。
# AOF AOF ( 100) , 。
auto-aof-rewrite-percentage 100
# aof ,
auto-aof-rewrite-min-size 64mb
# aof , redis ,aof 。
# redis ,
# ext4 data=ordered (redis 。)
# , redis , 。 yes,
# aof , log load。 no, redis-check-aof AOF 。
aof-load-truncated yes
################################ LUA SCRIPTING ###############################
# ( ),redis log, error。
# 。
# SCRIPT KILL SHUTDOWN NOSAVE 。
# write 。 write, 。
lua-time-limit 5000
################################ REDIS CLUSTER ###############################
# , 。
# cluster-enabled yes
# , , 。
# , Redis , Redis ,
#
# cluster-config-file nodes-6379.conf
# 。
# cluster-node-timeout 15000
# , slave master, slave master ,
# , slave master。 slave master 。 :
# slave (node-timeout * slave-validity-factor) + repl-ping-slave-period
# , slave-validity-factor 10, repl-ping-slave-period 10 ,
# 310 slave
# cluster-slave-validity-factor 10
# master slave ,slave master ,
# 2, 2 , 。
# cluster-migration-barrier 1
# , slot , ok, 。
# no, slot 。
# , , master , 。
# cluster-require-full-coverage yes
################################## SLOW LOG ###################################
###slog log redis 。 , slow log ,slog log , IO 。
# slowlog-log-slower-than slowlog , , 1000000 1 。 , , 0 。
slowlog-log-slower-than 10000
# 。 , 。 。 。 SLOWLOG RESET 。
slowlog-max-len 128
################################ LATENCY MONITOR ##############################
# redis , LATENCY redis 。 。0 , 。 , , CONFIG SET 。
latency-monitor-threshold 0
############################# EVENT NOTIFICATION ##############################
# , Redis 。 CPU , , 。
#notify-keyspace-events , :
##K , __keyspace@__
##E , __keyevent@__
##g DEL 、 EXPIRE 、 RENAME
##$
##l
##s
##h
##z
##x :
##e (evict) : maxmemory
##A g$lshzxe
# K E, , , 。 http://redis.io/topics/notifications
notify-keyspace-events "KEA"
############################### ADVANCED CONFIG ###############################
# hash-max-ziplist-entries ziplist, hash-max-ziplist-entries hash
hash-max-ziplist-entries 512
# value hash-max-ziplist-value ziplist, hash-max-ziplist-value hash。
hash-max-ziplist-value 64
# list-max-ziplist-entries ziplist, list-max-ziplist-entries list。
list-max-ziplist-entries 512
# value list-max-ziplist-value ziplist, list-max-ziplist-value list。
list-max-ziplist-value 64
# set-max-intset-entries iniset, set-max-intset-entries set。
set-max-intset-entries 512
# zset-max-ziplist-entries ziplist, zset-max-ziplist-entries zset。
zset-max-ziplist-entries 128
# value zset-max-ziplist-value ziplist, zset-max-ziplist-value zset。
zset-max-ziplist-value 64
# value hll-sparse-max-bytes (sparse),
# hll-sparse-max-bytes (dense)。
# 16000 value , value 3000。
# CPU , , 10000 。
hll-sparse-max-bytes 3000
# Redis 100 1 CPU redis hash hash, 。
# , , Redis 2 , no。
# , yes, 。
activerehashing yes
# , 。
# normal client, 0 hard limit, 0 0 soft limit,normal client , , 。
client-output-buffer-limit normal 0 0 0
# slave client MONITER client, client-output-buffer 256mb, 64mb 60 , 。
client-output-buffer-limit slave 256mb 64mb 60
# pubsub client, client-output-buffer 32mb, 8mb 60 , 。
client-output-buffer-limit pubsub 32mb 8mb 60
# redis 1s hz。
hz 10
# aof , aof-rewrite-incremental-fsync , 32MB fsync。 , 。
aof-rewrite-incremental-fsync yes