分享

redis搭建

 BIGDATA云 2018-07-13
一、下载解压
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)或手动安装

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多