本人共有三台虚拟机–192.168.223.144 192.168.223.145 192.168.223.146 .
计划每台机器创建两个redis实例, 每台都创建7000和7001两个端口 . 所以一共6个节点, 3个master, 3个salve.
安装前:
安装前, 需要明确几个概念.
- make
- 这一步是用来编译的,它从Makefile中读取指令,然后编译 , 大多数的源代码包都经过这一步进行编译
- make test / make check
- 这一步就是对上一步 make 的检查了,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0
- sudo make install
- 这一步是用来安装的,它也从Makefile中读取指令,安装到指定的位置
开始安装:
下载安装包,并解压到指定目录 .
进入redis目录, 执行”make” 编译命令 .
出现下面错误 : /bin/sh: cc: command not found redis
错误原因 : 没有gcc, 进行安装:yum install gcc- 接着使用make命令, 出现另一个错误 .
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
解决方式(添加参数) : make MALLOC=libc 执行”make test”, 还是出现错误 .
You need tcl 8.5 or newer in order to run the Redis test
解决方式 : yum install tcl 8.5再次”make test” 没有出现错误 , 说明可以进行安装了 .
执行命令 : make PREFIX=/usr/local/application/redis install
PREFIX : 执行安装之后生成文件路径, redis会生成bin目录 , 我指定在解压后的redis目录下
- 分别在三台机器都进行安装, 下面开始创建配置文件.
- 在三台redis目录下创建了”cluster”目录.
- 此时三台机器redis目录下都会有”cluster”目录 . 然后在目录下创建”7000”和”7001”目录 , 分别存放端口7000和端口7001的redis.conf配置文件.
- 拷贝redis目录下的redis.conf配置文件到7000和7001目录下.
此时需要修改三台机器上六个redis.conf配置文件 .
- 在三台redis目录下创建了”cluster”目录.
分别修改六个redis.conf配置文件 .
注意要对应各自ip和端口.
port 7000 //端口7000,7001,7002
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
进入redis目录下的bin, 执行脚本, 启动redis服务 .
注意 : 启动要加上配置文件路径.
./redis-server ../cluster/7000/redis.conf
./redis-server ../cluster/7001/redis.conf查看启动情况 .
启动正常之后, 创建集群 .
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中 , 使用这个工具即可完成集群安装.
进入redis目录下的src目录执行 :
./redis-trib.rb create –replicas 1 192.168.223.144:7000 192.168.223.144:7001192.168.223.145:7000192.168.223.145:7001192.168.223.146:7000192.168.223.146:7001
说明 : –replicas 1 表示每个主节点跟一个从节点
命令只需要执行一次即可 .又出现错误 .
因为这工具是由ruby实现, 所以必须安装ruby环境 .
yum -y install ruby ruby-devel rubygems rpm-build
既然ruby程序要访问redis数据库,总得有个连接接口, 然后执行下面命令 :
sudo gem install redis- 如果出现下面错 , 删除掉, bin目录下的cluster-config-file 相关文件删掉 , 然后重新启动 .
启动完成后, 再次执行集群命令, 终于看到胜利曙光 .
启动客户端测试,记住要加集群参数 “-c”.
至此集群就安装完毕, 本人刚开始写博客不久, 有什么不足地方请指正,