一、下载解压 unzip redis-3.2.0.zip -f /opt/ 二、编译安装 cd redis-3.2.0 make && make install 三、创建redis节点(至少6个节点) 测试我们选择1台服务器,分别为bigdata01,每个服务器有6个redis节点, 现在bigdata01上面创建3个节点: mkdir /opt/data/redis //创建集群存放配置信息的目录 创建目录,代表三个节点,对应对口为7000 7001 7002 7003 7004 7005 mkdir -p /opt/data/redis/7000 mkdir -p /opt/data/redis/7001 mkdir -p /opt/data/redis/7002 mkdir -p /opt/data/redis/7003 mkdir -p /opt/data/redis/7004 mkdir -p /opt/data/redis/7005 创建7000节点,拷贝配置信息到7000目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7000/ 创建7001节点,拷贝配置信息到7001目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7001/ 创建7002节点,拷贝配置信息到7002目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7002/ 创建7003节点,拷贝配置信息到7003目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7003/ 创建7004节点,拷贝配置信息到7004目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7004/ 创建7005节点,拷贝配置信息到7005目录 cp /opt/redis-3.2.0/redis.conf /opt/data/redis/7005/ 四、分别对7000 7001 7002 7003 7004 7005六个文件夹中的文件修改对应的配置 以7000为例: daemonize yes //配置redis后台运行 bind bigdata01 logfile /opt/logs/redis/redis-7000.log //注意/opt/logs/redis目录必须要预先创建 pidfile /opt/data/redis/7000/redis.pid //pidfile文件对应7000,7002,7003 port 7000 //端口7000,7001,7002 cluster-enabled yes //开启集群 把注释#去掉 cluster-config-file nodes-7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 cluster-node-timeout 15000 //请求超时 设置15秒够了 appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 然后在7001 7002 7003 7004 7005上做响应的修改配置即可 五、在两台机器上启动各个节点: cd /opt/redis-3.2.0 src/redis-server /opt/data/redis/7000/redis.conf src/redis-server /opt/data/redis/7001/redis.conf src/redis-server /opt/data/redis/7002/redis.conf src/redis-server /opt/data/redis/7003/redis.conf src/redis-server /opt/data/redis/7004/redis.conf src/redis-server /opt/data/redis/7005/redis.conf 六、查看服务 ps -ef | grep redis #查看redis是否启动 [root@bigdata01 redis-3.2.0]# ps -ef | grep redis root 3851 1 0 06:04 ? 00:00:00 src/redis-server bigdata01:7000 [cluster] root 3855 1 0 06:04 ? 00:00:00 src/redis-server bigdata01:7001 [cluster] root 3862 1 0 06:04 ? 00:00:00 src/redis-server bigdata01:7002 [cluster] root 3866 1 0 06:04 ? 00:00:00 src/redis-server bigdata01:7003 [cluster] root 3882 1 0 06:05 ? 00:00:00 src/redis-server bigdata01:7004 [cluster] root 3872 1 0 06:04 ? 00:00:00 src/redis-server bigdata01:7005 [cluster] 七、创建集群(核心) 现在就是要使用前面准备好的redis节点,将其串联起来搭建集群。官方提供了一个工具:redis-trib.rb($REDIS_HOME/src 使用ruby编写的一个程序,所以需要安装ruby) yum -y install ruby ruby-devel rubygems rpm-build 再用gem这个命令安装redis借口 gem是ruby的一个工具包 gem install redis [ -v 3.2.0] #[]中为可选项制定具体的软件版本 当然为了方便操作,两台redis服务器都要进行安装。 上面的步骤完事了,接下来运行一下redis-trib.rb /opt/redis-3.2.0/src/redis-trib.rb Usage: redis-trib <command> <options> <arguments ...> reshard host:port --to <arg> --yes --slots <arg> --from <arg> check host:port call host:port command arg arg .. arg set-timeout host:port milliseconds add-node new_host:new_port existing_host:existing_port --master-id <arg> --slave del-node host:port node_id fix host:port import host:port --from <arg> help (show this help) create host1:port1 ... hostN:portN --replicas <arg> For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster. 所以需要redis-trib.rb 的参数create来创建集群 /opt/redis-3.2.0/src/redis-trib.rb create --replicas 1 bigdata01:7000 bigdata01:7001 bigdata01:7002 bigdata01:7003 bigdata01:7003 bigdata01:7005 ====》会有如下第一种的错误 /opt/redis-3.2.0/src/redis-trib.rb create --replicas 1 192.168.43.111:7000 192.168.43.111:7001 192.168.43.111:7002 192.168.43.111:7003 192.168.43.111:7003 192.168.43.111:7005 运行中,提示Can I set the above configuration? (type 'yes' to accept): yes //输入yes [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. 八、测试 get和set数据 redis-cli -c -h bigdata01 -p 7000 搭建集群过程中出现的问题: 1、配置完所有主节点后,报" ERR Invalid node address specified" 由于redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式 redis-trib.rb create ip1:port1 ip2:port2 ip3:port3 2、ERR Slot 7185 is already busy (Redis::CommandError) 这是由于之间创建集群没有成功,需要将nodes.conf和dir里面的文件全部删除(注意不要删除了redis.conf) 重启redis服务 删除nodes-7*.conf redis.pid 3、创建集群时一直处于"Waiting for the cluster to join...................................."的状态 这个问题原因不知,但解决方法是在redis.conf文件中把bind 127.0.0.1本地环回口改为物理接口. 4、安装ruby redis时长时间没响应 这是由于天朝网络,解决办法是改ruby源(请自行baidu)或手动安装 |
|
来自: BIGDATA云 > 《Redis分布式缓存存储》