一、Redis主从复制(一主多从)
Redis master主节点负责写入数据,然后同步到从节点,Redis slave从节点进行只读操作,实现了读写分离。
1、如何实现?
主节点无需变动,只需在从节点配置中配置如下即可:
二、Redis Cluster集群(redis5.0.5)
见官网Redis集群教程:http://www.redis.cn/topics/cluster-tutorial.html
1、官网下载最新稳定版本。
2、安装redis
(1)解压下载好的redis,cd redis 进入目录里面。
(2) make install PREFIX=/usr/local/redis(表示安装到指定目录/usr/local/redis下面。也可以不指定PREFIX) 编译安装。
3、集群搭建
(1)新建一个redis-cluster目录。
(2)进入redis-cluster目录下,再新建redis-8001、redis-8002、redis-8003 三个目录。
(3)将/usr/local/redis/bin (这里是之前编译安装的结果)下的所有文件递归(cp -r)复制到redis-8001、redis-8002、redis-8003里面。
(4)把redis.conf配置文件也复制到redis-8001、redis-8002、redis-8003里面。并做修改,以redis-8001为例:
(4.1)修改端口。
(4.2)开启后台运行支持。
(4.3)开启集群支持。
(4.4)配置nodes信息配置文件,配置文件名即可,会自动生成。
(4.5)修改dir,db文件会存放在这个目录下。
(4.6) 修改pidfile 文件名。
(4.7)修改logfile文件名。
(4.8)关闭保护模式。因为这里没设密码
redis-8002和redis-8003配置同上,这里就不做重复描述。
(5)将三个节点全部启动。启动后查看进程信息如下:
(6)使用命令创建集群,如下说明搭建成功。
查看集群信息(三个集群主节点)
(7)测试下集群是否可用。使用 -c 集群模式连接redis。并设置key value。如下。
注意:
我们设置一个值,如果计算出所在的槽不归我管,则会自动重定向到其他节点。
如果不是集群模式连接redis,会出现一些问题。
4、添加新主节点(例如添加主节点127.0.0.1:8004)
redis-cli --cluster add-node 127.0.0.1:8004 127.0.0.1:8001
说明:添加新主节点127.0.0.1:8004。命令里需要指定一个已有节点以便于获取集群信息,这里指定的是127.0.0.1:8001。
5、给新主节点分片槽(例如给127.0.0.1:8004节点分配节点)
6、添加从节点(例如把127.0.0.1:8004节点添加成从节点)
查看集群节点,添加从节点成功。
7、redis5 集群命令