怎样进行redis环境搭建,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联建站坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十余年网站建设经验创新互联建站是成都老牌网站营销服务商,为您提供成都网站设计、成都做网站、网站设计、H5建站、网站制作、成都品牌网站建设、微信平台小程序开发服务,给众多知名企业提供过好品质的建站服务。因为工作环境中有redis,所以对redis进行了学习,当然首先就是从搭建环境开始,下面是我对于搭建redis环境的记录。
系统是SuSE 11 sp2,
软件环境如下所示:
linux-svnfile:/home/apps/redis # ls
redis-3.0.0.gem ruby-1.9.2-p290.tar.gz zlib-1.2.7.tar.gz
redis-3.0.0.tar.gz rubygems-2.4.6.tgz
redis.conf zlib-1.2.6.tar.gz
安装基础环境:
linux-svnfile:/home/apps/redis # tar -zxf zlib-1.2.6.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src/zlib-1.2.6 # ./configure --prefix=/usr/local/zlib
linux-svnfile:/usr/local/src/zlib-1.2.6 # make && make install
linux-svnfile:/home/apps/redis # tar -zxf ruby-1.9.2-p290.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # ./configure --prefix=/usr/local/ruby
linux-svnfile:/usr/local/src/ruby-1.9.2-p290 # make && make install
linux-svnfile:/usr/local/ruby # ln -s /usr/local/ruby/bin/ruby /usr/local/bin
linux-svnfile:/home/apps/redis # tar xf rubygems-2.4.6.tgz -C /usr/local/src
linux-svnfile:/usr/local/src # mv rubygems-2.4.6 ../gem
linux-svnfile:/usr/local/gem # ruby setup.rb
linux-svnfile:/usr/local/gem # cp bin/gem /usr/local/bin/
linux-svnfile:/home/apps/redis # gem install -l redis-3.0.0.gem
Successfully installed redis-3.0.0
Installing ri documentation for redis-3.0.0
Done installing documentation for redis after 0 seconds
1 gem installed
linux-svnfile:/home/apps/redis # tar -zxf redis-3.0.0.tar.gz -C /usr/local/src
linux-svnfile:/usr/local/src # mv redis-3.0.0 ../redis
linux-svnfile:/usr/local/redis # make
至此基础环境搭建完成
下面进行集群的搭建
linux-svnfile:/usr/local/redis # cp src/redis-server /usr/local/bin/
linux-svnfile:/usr/local/redis # cp src/redis-cli /usr/local/bin/
linux-svnfile:/usr/local/redis # cp src/redis-trib.rb /usr/local/bin
linux-svnfile:/usr/local/redis # mkdir -p /usr/local/cluster/{7000..7005}
linux-svnfile:/usr/local/redis # vi redis.conf
daemonize yes
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7000
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7001
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7002
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7003
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7004
linux-svnfile:/usr/local/redis # cp redis.conf ../cluster/7005
这里需要注意的是文件名对应文件里端口的配置,例如7001文件下的port参数需要改为7001,其他一样做修改。
linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf
linux-svnfile:/usr/local/redis # ps -ef | grep redis
root 15590 1 0 18:52 ? 00:00:00 redis-server *:7000 [cluster]
linux-svnfile:/usr/local/redis # redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
>>> Creating cluster
Connecting to node 127.0.0.1:7000: OK
Connecting to node 127.0.0.1:7001: [ERR] Sorry, can't connect to node 127.0.0.1:7001
You have new mail in /var/mail/root
linux-svnfile:/usr/local/cluster/7000 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7000 # cd ../7001
linux-svnfile:/usr/local/cluster/7001 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7001 # cd ../7002
linux-svnfile:/usr/local/cluster/7002 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7002 # cd ../7003
linux-svnfile:/usr/local/cluster/7003 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7003 # cd ../7004
linux-svnfile:/usr/local/cluster/7004 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7004 # cd ../7005
linux-svnfile:/usr/local/cluster/7005 # redis-server redis.conf
linux-svnfile:/usr/local/cluster/7005 # ps -ef | grep redis
root 17575 1 0 20:05 ? 00:00:00 redis-server *:7000 [cluster]
root 17590 1 0 20:06 ? 00:00:00 redis-server *:7001 [cluster]
root 17604 1 0 20:06 ? 00:00:00 redis-server *:7002 [cluster]
root 17612 1 0 20:06 ? 00:00:00 redis-server *:7003 [cluster]
root 17616 1 0 20:06 ? 00:00:00 redis-server *:7004 [cluster]
root 17624 1 0 20:06 ? 00:00:00 redis-server *:7005 [cluster]
像是上面在启动服务时需要注意切换到相应的配置文件的目录下,不然相应端口的服务无法启动,例如我之前在/usr/local/redis目录下启动后只有7000对应的服务启动了。
linux-svnfile:/usr/local/redis # redis-server ../cluster/7000/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7001/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7002/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7003/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7004/redis.conf
linux-svnfile:/usr/local/redis # redis-server ../cluster/7005/redis.conf
linux-svnfile:/usr/local/redis # ps -ef | grep redis
root 15144 19064 0 18:37 pts/0 00:00:00 vi redis.conf
root 15590 1 0 18:52 ? 00:00:00 redis-server *:7000 [cluster]
root 15616 19443 0 18:52 pts/1 00:00:00 grep redis
linux-svnfile:/usr/local/cluster #redis-cli -p 7000
127.0.0.1:7000>
删除slave节点
删除master节点
linux-svnfile:/usr/local/redis # redis-trib.rb reshard 127.0.0.1:7001
How many slots do you want to move (from 1 to 16384)? 5461
What is the receiving node ID? 42929649e533ec8aad7cbb81f204f04c849d4bff
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1: 6fe9561e605b7ee85e67a2557f7fb641f482afb4
Source node #2:done
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
说明:
5461表示要删除master所有的slot数量
What is the receiving node ID是指将7000的slot迁移的节点7001的node-id
Source node #1是指要删除的master的node-id
下面可以看到7000的slot为0,而7001多了4561
在删除master节点出现如下面所示的错误,是因为删除master节点之前没有删除master节点的slave节点。
上面是在单台机器上做的集群,下面展示两台机器上做集群,其实也很简单。
参考之前的环境编译源码到另一台机器
在两台机器上编辑配置文件
/usr/local/redis # vi redis.conf
daemonize yes
port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
cluster-config-file nodes-7001.conf
分别创建目录和文件
linux-svnfile:/usr/local/redis # mkdir -p/usr/local/cluster/{7001..7003}
localhost:/usr/local/redis # mkdir -p/usr/local/cluster/{8001..8003}
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7001
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7002
linux-svnfile:/usr/local/redis # cpredis.conf ../cluster/7003
localhost:/usr/local/redis # cp redis.conf../cluster/8001
localhost:/usr/local/redis # cp redis.conf../cluster/8002
localhost:/usr/local/redis # cp redis.conf../cluster/8003
修改对应目录的配置文件其中port 和cluster-config-file分别对应各自的目录名,可使用sed命令做修改
sed -i "s/7001/7002/g"
启动服务
关于怎样进行redis环境搭建问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款