Redis的Replication(复制)
Posted ecollab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的Replication(复制)相关的知识,希望对你有一定的参考价值。
分布式中使用Redis实现Session共享(二)
http://www.cnblogs.com/stephen-liu74/archive/2012/02/23/2364717.html
读写分离
配置文件为redis.conf文件
如何配置Replication:
见如下步骤:
1). 同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380。
2). 在Slave服务器上执行一下命令:
/> redis-cli -p 6380 #这里我们假设Slave的端口号是6380
redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #我们假设Master和Slave在同一台主机,Master的端口为6379
OK
上面的方式只是保证了在执行slaveof命令之后,redis_6380成为了redis_6379的slave,一旦服务(redis_6380)重新启动之后,他们之间的复制关系将终止。
如果希望长期保证这两个服务器之间的Replication关系,可以在redis_6380的配置文件中做如下修改:
/> cd /etc/redis #切换Redis服务器配置文件所在的目录。
/> ls
6379.conf 6380.conf
/> vi 6380.conf
将
# slaveof <masterip> <masterport>
改为
slaveof 127.0.0.1 6379
保存退出。
这样就可以保证Redis_6380服务程序在每次启动后都会主动建立与Redis_6379的Replication连接了。
配置好后可以写读操作
public ActionResult TestWrite()//主服务
{
var client = new Redisclient("127.0.01","6379");
client.Set<int>("pwd8800",1111);
return content("ok");
}
public ActionResult TestRead()//子服务
{
var client = new Redisclient("127.0.01","6379");
int pwd = client.Get<int>("pwd8800");
return content(pwd.ToString());
}
Save 900 1 含义为900秒后有一个KEY发生变化就执行一次保存
修改appendonly配置可以启动aof模式,改为yes 后就启动aof模式,实时保存数据,但影响性能
appendfsync no/always/everysec always表示每接一个命令写一次,性能最差; no操作系统同步到磁盘,持久化没有保证,性能最好; everysec 每秒同步一次,性能折中。首先要启用aof模式。
aof文件的增长速度比较快,所以
从2.4版本后增加了bgrewriteaof功能,在负载不高的情况下,重写aof文件
提高性能可以:
主服务关闭save功能;
从服务器开启aof功能,并开启bgrewriteaof功能,不对外提供服务
如果同时配置了RDB(快照)、aof,恢复数据时只加载aof
如果只配置了RDB快照,恢复时将加载dump文件恢复
以上是关于Redis的Replication(复制)的主要内容,如果未能解决你的问题,请参考以下文章