Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。官网链接:https://redis.io 或 http://redis.cn (redis的特性、使用烦请百度)
第一步:Redis下载
下载地址:http://redis.cn/download.html,我选择的版本是redis-3.2.3(如果版本不一致可能存在差异)。
下载下来压缩包为redis-3.2.3.tar.gz。请使用tar -xzvf redis-3.2.3.tar.gz解压至/opt目录
第二步:Redis安装
#cd /opt/redis-3.2.3#make && make install#cd utils#./install_server.sh
Port
6379
Config file
/etc/redis/6379.conf
Log file
/var/log/redis_6379.log
Data dir
/var/lib/redis/6379
Executable
/usr/local/bin/redis-server
Cli Executable
/usr/local/bin/redis-cli
拷贝两个文件并修改:#cp 7001.conf 7002.conf#sed -i "s/7001/7002/g" 7002.conf
#cp 7001.conf 7003.conf#sed -i "s/7001/7003/g" 7003.conf
#redis-cli shutdown
#redis-server /etc/redis/6379.conf
#redis-server /etc/redis/7001.conf &
#redis-server /etc/redis/7002.conf &
#redis-server /etc/redis/7003.conf &
启动完成后,查看是否启动成功:#ps -ef | grep redis
#./opt/redis-3.2.3/src/redis-trib.rb create --replicas 1 10.100.160.132:7001 10.100.160.132:7002 10.100.160.132:7003 0.100.160.133:7004 0.100.160.133:7005 0.100.160.133:7006
--replicas 1 表示 自动为每一个master节点分配一个slave节点 上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)
注:系统自动分配时,可能并不符合我们的分配意愿,推荐手动分配
1、创建集群节点提示:
/usr/bin/env: ruby: No such file or directory
原因:执行的ruby的脚本,需要ruby的环境
解决:yum install ruby
2、创建集群节点单提示:
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
from ./src/redis-trib.rb:25:in `<main>'
原因:ruby缺少redis接口,需要安装(下载地址:https://rubygems.org/downloads/redis-3.2.2.gem)
解决:下载完成后安装,gem install redis-3.2.2.gem
3、创建集群节点单提示:
Waiting for the cluster to join....................................
各个节点的配置文件中,bind一定要配置为本机的ip地址,否则其他机器 telnet ip port 不通,集群也就不能成功
如果第一次构建集群不成功,再次使用redis-trib.rb时会出现类似err slot 0 is already busy (redis::commanderror)的报错
这时需要逐个登录上面命令中涉及到的节点,清空因为上次不成功留下的数据
例如:清空节点10.100.160.132:7001 信息,在10.100.160.132上
#redis-cli -c -h 10.100.160.132 -p 7001
进入后输入:
FLUSHALL CLUSTER RESET SOFT exit
删除配置文件中配置的
cluster-config-file nodes_7001.conf
如果是6379节点nodes_6379.conf 在/var/lib/redis/6379/下,把这个目录下的文件都删掉即可
每个节点清空后关闭节点:
#ps -ef | grep redis
root 16486 1 0 19:06 ? 00:00:01 redis-server 192.168.1.1:7002 [cluster] root 16490 1 0 19:06 ? 00:00:00 redis-server 192.168.1.1:7001 [cluster] root 16494 1 0 19:06 ? 00:00:00 redis-server 192.168.1.1:7000 [cluster] root 16498 1 0 19:06 ? 00:00:01 redis-server 192.168.1.1:6379 [cluster]#kill -9 16486 16490 16494 16498
之后启动节点后,再运行redis-trib.rb命令创建集群即可
