1, redis配置文件常用选项说明
daemonize no
说明:是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。
pidfile /var/run/redis.pid
说明:redis-server的pid文件。
port 6379
说明:redis-server的端口号
dbfilename dump.rdb
说明:数据库文件的位置,最好添加绝对路径,若不添加时在启动用户的home目录下。
slaveof <masterip> <masterport>
说明:设置主从服务器的主服务器的地址和端口。例如:slaveof 192.168.1.1 6379
loglevel verbose
说明:日志级别,有四种,debug,verbose,notice,warning。
logfile stdout
说明:日志的输出文件,默认是标准输出。例如:logfile /tmp/redis.log
2, 主从的安装和配置
2.1 基本环境
假设我有两台机器:
master: 192.168.1.1
slave: 192.168.1.2
.下载
使用的版本是: redis-2.4.13
>cd redis-2.4.13
>make
>sudo make install
2.2 安装主服务器
vim redis.conf
根据自己的需要修改一些参数
.修改磁盘上保存数据库文件的位置:
dbfilename /redisdb/dump.rdb
.修改日志级别
#如果只要输出少量日志的话,可以用waring
loglevel warning
.修改日志文件的位置
logfile /tmp/redis.log
2.3 安装和配置从机
cp redis.conf /etc/redis_slave.conf
vim redis_slave.conf
修改其中的一行
配置master的ip地址和redis-server的端口。
slaveof <masterip> <port>
3, 启动和测试
主机: redis-server /etc/redis.conf
从机: redis-server /etc/redis_slave.conf
3.1 测试
在主机上启动redis客户端:
ssh 192.168.1.1
redis-cli
>set k1 v1
>get k1
"v1"
.登陆从机,并在从机上启动客户端:
ssh 192.168.1.2
redis-cli
>get k1
"v1"
可以看到redis已经把数据同步过来了。
附redis.conf详解
daemonize yes #是否以后台进程运行,默认为no
pidfile /var/run/redis.pid #如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
bind 127.0.0.1 #绑定主机IP,默认值为127.0.0.1(注释)
port 6379 #监听端口,默认为6379
timeout 300 #超时时间,默认为300(秒)
loglevel notice #日志记slave-serve-stale-data yes:在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。录等级,有4个可选值,debug,verbose(默认值),notice,warning
logfile /var/log/redis.log #日志记录方式,默认值为stdout
databases 16 #可用数据库数,默认值为16,默认数据库为0
save 900 1 #900秒(15分钟)内至少有1个key被改变
save 300 10 #300秒(5分钟)内至少有300个key被改变
save 60 10000 #60秒内至少有10000个key被改变
rdbcompression yes #存储至本地数据库时是否压缩数据,默认为yes
dbfilename dump.rdb #本地数据库文件名,默认值为dump.rdb
dir ./ #本地数据库存放路径,默认值为 ./slaveof 10.0.0.12 6379 #当本机为从服务时,设置主服务的IP及端口(注释)
masterauth elain #当本机为从服务时,设置主服务的连接密码(注释)
slave-serve-stale-data yes #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。
requirepass elain #连接密码(注释)
maxclients 128 #最大客户端连接数,默认不限制(注释)
maxmemory #设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly no #是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendfilename appendonly.aof #更新日志文件名,默认值为appendonly.aof(注释)
appendfsync everysec #更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
really-use-vm yes
vm-enabled yes #是否使用虚拟内存,默认值为no
vm-swap-file /tmp/redis.swap #虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory 0 #vm大小限制。0:不限制,建议60-80% 可用内存大小。
vm-page-size 32 #根据缓存内容大小调整,默认32字节。
vm-pages 134217728 #page数。每 8 page,会占用1字节内存。
vm-page-size #vm-pages 等于 swap 文件大小
vm-max-threads 4 #vm 最大io线程数。注意: 0 标志禁止使用vm
hash-max-zipmap-entries 512 hash-max-zipmap-value 64list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 activerehashing yes