WEB开发网
开发学院服务器云计算 Redis安装及主从配置 阅读

Redis安装及主从配置

 2012-07-18 19:36:33 来源:WEB开发网   
核心提示:主机上执行get foo1时显示的信息如下: redis 127.0.0.1:6379> get foo1 "test" 另一台从机上执行getfoo1时显
主机上执行get foo1时显示的信息如下:
redis 127.0.0.1:6379> get foo1
"test"
另一台从机上执行getfoo1时显示的信息如下:
redis 127.0.0.1:6379> get foo1
"test"
当把10.20.150.208从机启动起来时,执行getfoo1命令,显示的信息如下:
redis 127.0.0.1:6379> get foo1
"test"
可见,即使当从机挂掉并再次启动时,仍会将主机做过的修改全部都同步至重启的从机上。
当在一台从机上执行写入
另外在一台从机上执行的写入操作,是不会同步至主机及其它从机上的。在一台从机10.20.150.209上执行set foo2 test2命令,在此从机上执行get foo2命令会得到如下的结果:
redis 127.0.0.1:6379> get foo2
"test2"
在主机上执行getfoo2命令时,则会得到如下结果:
redis 127.0.0.1:6379> get foo2
(nil)
同样,在另外一台从机10.20.150.208上执行get foo2命令时,会得到如下结果:
redis 127.0.0.1:6379> get foo2
(nil)
由此可以得出在从机上所做的任何写入操作,只对本台从机起作用,不会被同步至主机及其它从机的。
Redis的配置详解
配置名称
可选值/推荐值
说明
daemonize
yes/no
如果选择yes,则说明redis以看守进程的方式运行在系统的后台。通过ps –ef |grep redis-server可以查看redis服务是否正常。
pidfile
/var/run/redis.pid
Pid文件的全路径信息
port
6379
Redis服务的默认端口
bind
0.0.0.0
Redis服务绑定的Ip地址,如果填写0.0.0.0,则绑定本地所有的Ip地址。
timeout
86400
客户端和Redis服务之间空闲的最大时间,超过这个时间,连接将会断开。配置的时候需要根据客户端的需求进行配置
loglevel
debug, verbose, notice, warning
debug:开发和测试情况下配置为此选项
verbose:无调试信息,会输出notice消息和warning消息等。
notice:比verbose较少的信息
warning:只有比较重要的信息会输出
logfile
 
stdout或者日志文件名称
指明日志写入到哪个文件中去,如果在daemonize模式下,日志将不会输出到任何地方;否则输出到标准输出或者日志文件中。
database
0
配置数据库的数量。如果为0的话,只配置一个数据库。数据库的索引从0到database-1
save <seconds> <changes>
save 900 1
多少秒内至少有多少个key改变的情况下存盘。可以多个规则进行组合。譬如:
save 900 1
save 300 10
save 60 10000
如果在60秒内有10000个或以上的key发生变化,就存盘;
如果在300秒内有10个key变化就存盘;
如果在900秒内有1个key变化就存盘。
rdbcompression
 
yes/no
是否支持rdb数据文件压缩,如果不支持的话,产生的rdb数据文件将比采用压缩方式的要大。如果选择no,则暂用cpu要减小。
dir
./
表示数据库文件存贮到指定的目录下。这里一定要填写一个目录名称。
slaveof <masterip> <masterport>
 
该选项用于实现主从方式的redis,其中masterip和masterport填写主redis服务的服务ip和端口号。
masterauth <master-password>
 
如果本配置作为一个从redis服务的配置,而且主redis服务需要进行密码认证,则这里需要填写主redis服务的密码信息,即requirepass中填写的数值。
requirepass
 
如果本配置是作为一个主redis服务的配置,而且需要提供认证机制,则该配置项可以提供该功能。所有的从redis服务都需要在masterauth中填写相应的密码。建议该处的密码信息是一个较长的不易破解的密码。
Maxclients
 
限制能够同时在线的客户端的数量。
Maxmemory
 
设置redis最多消耗的内存字节数;如果超过指定的字节数,redis会尝试释放过期的key;如果释放失败,则所有的写失败,读可以继续。对于一些可以预见的应用,可以设置该项;对于一些不可预见的应用,不建议设置该项内容。
appendonly
yes/no
在每次变更的时候是否写AOF日志。如果设为yes,则AOF日志会写入到日志文件中,一段遇到掉电的情况,可以通过日志文件恢复数据;如果对此不敏感,则不需要打开该选项
Appendfilename
 
如果appendonly设置为yes,则这里需要设置AOF文件的名称
appendfsync
no/ always/everysec
no:由操作系统决定什么时候将日志同步到磁盘;
always:比较慢,最安全
everysec:介于上面两种选项的一个折衷的方法。
vm-enabled
yes/no
如果内存的需求比实际的内存大的话,可以选择yes选项,采用虚拟内存来充当内存;否则采用no选项。
vm-swap-file
 
虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory
 
将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。
vm-page-size
32、64或其它
每页占用的字节数。如果你们数据的尺寸比较小,可以选择32或者64,如果数据比较大,那么建议采用一个较大的数据来描述。本参数对启用VM机制有用。
vm-pages
 
页面的最大数量,对于一个4G的swap文件来说,这个数值最大为4G/ vm-page-size得到的整数值。
vm-max-threads
 
可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.
glueoutputbuf
 
把小的输出缓存放在一起,以便能够在一个TCP packet中为客户端发送多个响应,具体原理和真实效果我不是很清楚。所以根据注释,你不是很确定的时候就设置成yes
hash-max-zipmap-entries
 
在redis 2.0中引入了hash数据结构。当hash中包含超过指定元素个数并且最大的元素没有超过临界时,hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
activerehashing
yes/no
开启之后,redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。当你的使用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置为yes,以便能够尽可能快的释放内存

上一页  1 2 3 4 5 6 

Tags:Redis 主从 配置

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接