Linux下Redis安装及集群搭建
1、Redis安装
1.1、首先到官网下载Redis安装包,这里用的是3.0.7版本,传到Linux安装目录里
1.2、执行解压指令:tar -zxvf redis-3.0.7.tar.gz
1.3、cd指令切到解压目录中,然后执行指令: make
执行make的时候,会出现异常:
异常一:
make[2]: cc: Command not found
异常原因:没有安装gcc
解决方案:yum install gcc
异常二:
zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
异常原因:一些编译依赖或原来编译遗留出现的问题
解决方案:make distclean。清理一下,然后再make。
1.4、在make成功以后,执行指令:make test
在make test时出现异常:
异常一:
couldn't execute "tclsh8.5": no such file or directory
异常原因:没有安装tcl
解决方案:yum install -y tcl。
异常二:
!!! WARNING The following tests failed: *** [err]: Server is able to generate a stack trace on selected systems in tests/integration/logging.tcl
异常原因:某个测试没通过
解决方案:可忽略
1.5、安装,执行指令:make install
1.6、安装完毕后,搭建测试配置,测试启动:
第一种:前台模式,默认配置启动(默认端口6379)
直接执行指令:redis-server
第二种:守护进程(后台)模式,指定配置文件启动
在redis解压根目录中找到配置文件模板(redis.conf),复制到如下位置:
cp redis.conf /usr/local/redis/7000/7000.conf
通过vi命令修改
daemonize yes
port 7000
pidfile /usr/local/redis/7000/7000.pid
logfile /usr/local/redis/7000/7000.log
dir /usr/local/redis/7000
最后运行redis: redis-server /usr/local/redis/7000/7000.conf
1.7、启动后:
执行指令:redis-cli 连接端口为6379 Host为127.0.0.1的redis服务器
或者:redis-cli -p 7000 -h 192.168.1.103 连接端口为7000 Host为192.168.1.103的redis服务器
1.8、连接了redis服务器后,可以通过 redis-cli -p 7000 -h 192.168.1.103 shutdown 关闭连接
1.9、redis配置文件中的基本配置项:
port 7000 #端口
daemonize yes #守护进程模式启动
cluster-config-file nodes-7000.conf #集群配置文件名
pidfile /usr/local/redis/7000/redis.pid #进程id存储位置
logfile /usr/local/redis/7000/redis.log #日志文件存储位置
dir /usr/local/redis/7000 #工作目录
cluster-enabled yes #是否支持集群
2、Redis集群搭建
2.1、启动至少6个redis服务器,每台服务配置文件中的配置项增加:
cluster-enabled yes #开启集群支持
cluster-config-file nodes-7003(对应端口号).conf #记录节点信息
①我们以7001~7006为端口创建服务,先创建6个文件夹7001、7002、...7006
②分别复制配置文件redis.conf到以上目录:cp redis.conf /usr/local/redis/7001/7001.conf
③分别修改配置:
daemonize yes
port 7001
pidfile /usr/local/redis/7001/7001.pid
logfile /usr/local/redis/7001/7001.log
dir /usr/local/redis/7001
cluster-enabled yes
cluster-config-file nodes-7001.conf
2.2、以各种的配置开启所有服务器
查询开启的服务: ps -ef | grep redis
2.3、搭建集群
cd 到redis的安装目录的src下执行
./redis-trib.rb create --replicas 1 192.168.136.128:7001 192.168.136.128:7002 192.168.136.128:7003 192.168.136.128:7004 192.168.136.128:7005 192.168.136.128:7006
2.4、错误处理
①执行上面的命令时候会报错
错误:/usr/bin/env: ruby: No such file or directory
因为是执行脚本所以需要安装ruby环境,执行 yum install ruby 即可
②然后再执行上面的命令时候还会报错,提示缺少rubygems组件
错误:./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24
执行: yum install rubygems
③再次执行上面的命令,还会报错,提示不能加载redis,是因为缺少redis的接口
错误:/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./redis-trib.rb:25
执行:gem install redis
这里可能无法安装,因为无法连接gem服务器:
[@zw_22_90 src]# gem install redis --version 3.0.0
ERROR: Could not find a valid gem 'redis-3.0.0' (>= 0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
问题解决如下:
需要手工下载并安装:
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
问题:
提示为找到该命令,那么需要安装:yum install wget
gem install -l ./redis-3.2.1.gem
④再次执行上面的命令,正常执行
输入yes,然后配置完成。
2.5、测试
进入集群环境:redis-cli -c -p 7001 -h 192.168.136.128
查看集群:cluster nodes
master 主 slave 从
退出:quit
至此redis集群搭建成功。