前期准备
使用的操作系统是os x系统, 已经安装了redis(我这里是使用brew进行安装).
redis主从环境搭建
这里假设搭建一个master, 一个slave的环境(多个slave的环境搭建类似)
- 到
/usr/local/etc
目录下查找redis的配置文件, redis.conf文件 - 拷贝redis.conf文件, 重命名成redis6380.conf
- 修改redis6380.conf配置文件中的以下配置:
port 6380
slaveof 127.0.0.1 6379
masterauth <master-password>(如果master主机设置了auth密码则要进行设置)
- 分别启动mater和slave, 启动时指定配置文件(不指定默认使用redis.conf)
redis-server <PATH-TO-REDIS.CONF>/redis.conf // 启动master
redis-server <PATH-TO-REDIS6380.CONF>/redis6380.conf // 启动slave
master:
slave:
- 使用客户端连接redis进行操作, 连接时要指定端口
redis-cli -p 6379 // 连接到master
redis-cli -p 6380 // 连接到slave
注意: 默认情况下slave服务只能进行读操作, 要是想让slave也能进行写操作, 则需要修改slave-read-only no
, 这样就能对slave进行写操作, 但是对slave的写操作不会同步到master中.
redis集群搭建
- 新建3个目录, 目录名是端口号
- 每一个目录中都放一份redis.server执行文件(方便后面的执行, 不是必要的)和一份redis.conf配置文件
- 修改每个目录中的redis.conf配置文件中的以下属性
cluster-config-file nodes-<port>.conf(只要3个配置的文件名不一样即可)
daemonize yes
cluster-enabled yes
cluster-node-timeout 5000
- 进入到每个目录, 使用命令./redis-server redis.conf启动redis
- 安装ruby(已经安装的跳过, mac应该是自带ruby的)
- 安装redis的ruby模块 [sudo] gem install redis
- 从redis的源码中下载src/redis-trib.rb文件(这个ruby用于管理redis的集群, 例如slots的设置)
- 启动集群, ruby <redis-trib.rd-path> create <--replicas 1>(用于创建master-slave 模式, 设置每个master有1个slave) 127.0.0.1:7000 127.0.0.1:7001...
- 使用redis-cli -p <port>指定任意一个端口, 就可以连接redis的集群了
cluster: