1. 前期准备
使用的操作系统是os x系统,已经安装了redis(我这里是使用brew进行安装)。
2. 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密码则要进行设置)
4. 分别启动mater和slave,启动时指定配置文件(不指定默认使用redis.conf)
redis-server <PATH-TO-REDIS.CONF>/redis.conf // 启动master
redis-server <PATH-TO-REDIS6380.CONF>/redis6380.conf // 启动slave
master:
slave:
5. 使用客户端连接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
4. 进入到每个目录,使用命令./redis-server redis.conf启动redis
5. 安装ruby(已经安装的跳过,mac应该是自带ruby的)
6. 安装redis的ruby模块
[sudo] gem install redis
7. 从redis的源码中下载src/redis-trib.rb文件(这个ruby用于管理redis的集群, 例如slots的设置)
8. 启动集群
ruby create <--replicas 1>(用于创建master-slave 模式,设置每个master有1个slave)127.0.0.1:7000 127.0.0.1:7001...
9. 使用redis-cli -p 指定任意一个端口,就可以连接redis的集群了
cluster:
3. 最后
在本地搭建了redis集群之后就可以做很多事情了, 比如可以在本地实现一个redis的分布式锁,模拟redis集群产生了热key应该怎么处理,redis集群扩容或者缩容的时候应该会发生什么事情,所以建议平时会在工作中使用redis的乎友可以尝试动手搭建一遍redis集群,应该会有不少的收获。