1,单机创建多实例
一个redis服务器安装多个redis实例,每个实例对应一个端口。默认端口是6379. 将redis.conf配置文件复制一份到另外一个文件夹下,然后修改其中的信息即可。 pidfile : pidfile/var/run/redis/redis_6380.pid port 6380 logfile : logfile/var/log/redis/redis_6380.log rdbfile : dbfilename dump_6380.rdb 然后启动的时候,指定好对应的配置文件即可 #redis-server/usr/local/redis/redis6380.conf #redis-server/usr/local/redis/redis6381.conf 启动了之后用ps -ef|grep redis 即可看到多个实例启动了进入某一个实例,使用命令 redis-cli -p 6380即可。
2,复制
复制可以让从服务器拥有和主服务器一样的数据副本,作用之一就是可以让读写分离,让从服务器去处理读请求,主服务器主要处理写请求。提到效率。redis把这样的事情做的非常简单。从服务器设置
两种方法可以让一个redis实例变成一个从服务器,第一种就是在redis.conf文件中配置好 slaveof host port信息,使用这个配置文件启动的redis实例就是这个host的这个port对应的那个实例的从服务器了。第二种更简单,正常启动redis实例,启动后,在使用过程也好,已启动就执行也好,执行下slaveof host port命令,即可直接成为别人的从服务器,执行了之后,从redis的原先的数据就全部删除掉,然后将主redis的数据同步过来。下图展示了从redis链接主redis的时候发生的事情。由上图可以看出,主redis在复制期间也会处理客户端的请求,因为是使用的bgsave,这个时候,如果主从之间网络带宽不足或者主redis的内存太少,还是会比较影像主redis的使用效率的。因此,在实际只用中,最好让主redis只使用50-60%的内存,留下点内存去做其他的事情。 一个主redis如果有太多的从redis的话,网络带宽不一定受得了,还好redis支持主从链的方式,即从redis也可以有从redis。主从,从从复制的时候有个区别,如果从x有从y,那么在从x解析从主redis拿过来的快照的时候,将断开于从y的连接,导致y需要重新连接并同步。