安装go环境
tar zxf go1.8.linux-amd64.tar.gz -C /usr/local/ ##下载go环境压缩包,并解压。
cd /usr/local/go ##切换到go目录中
vim /etc/profile ##编辑环境变量
export GOROOT=/usr/local/go ##设置为go安装的路径
export PATH=$GOROOT/bin:$PATH ##默认安装包的路径
export GOPATH=/home/user/go
source /etc/profile ##使新建立的环境变量立刻生效而不用重新启动系统。
vim halo.go ##编译一个go代码
package main
import "fmt"
func main(){
fmt.Printf("hello,world\n")
}
go run halo.go ##运行查看环境的安装
安装codis
cd
mkdir -p $GOPATH/src/github.com/CodisLabs ##创建源代码下载地址。
unzip codis-release3.2.zip ##下载codis安装包,并且解压
mv codis-release3.2 $GOPATH/src/github.com/CodisLabs/codis ##将解压的文件放入源代码下载地址中
yum install -y g++ gcc-c++ automake openssl-devel zlib-* ##安装编译所需要的软件
cd $GOPATH/src/github.com/CodisLabs/codis
make ##直接通过make进行编译
快速启动
##源码中 admin 文件夹提供了一系列脚本以便快速启动、停止各个组件,提高运维效率。
cd $GOPATH/src/github.com/CodisLabs/codis/admin
./codis-dashboard-admin.sh start ##启动codis-dashboard
./codis-proxy-admin.sh start ##启动codis-proxy
./codis-fe-admin.sh start
./codis-server-admin.sh start ##启动codis-server
cd /home/user/go/src/github.com/CodisLabs/codis/log ##启动后可以在此目录中查看当天的日志,检测是否启动成功
启动codis-server出现报错。因为Redis默认端口号就是6379,由于之前(centos安装Redis)设置了本机默认开机启动Redis,所以6379已被占用。解决:
cd $GOPATH/src/github.com/CodisLabs/codis/config
vim redis.conf ##编辑配置文件
pidfile /tmp/redis_6380.pid ##修改pid、端口
port 6380
./bin/codis-server ./config/redis.conf 启动
cp redis.conf redis6381.conf ##再次生成一个配置文件,添加两个redis实例
vim redis6381.conf ##编辑其端口为6381
./bin/codis-server ./config/redis6381.conf
cp redis.conf redis6382.conf
vim redis6382.conf
./bin/codis-server ./config/redis6382.conf
netstat -antlp 9090端口。
浏览器:http://172.25.119.2:9090
通过web浏览器访问集群管理页面(fe地址:127.0.0.1:9090) 选择我们刚搭建的集群 codis-demo,在 Proxy 栏可看到我们已经启动的 Proxy, 但是 Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入我们将要启动的 codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可。
通过fe初始化slot
新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做,点击此按钮,我们即快速完成了一个集群的搭建。
添加一个监控
##当master出现错误,就会出现上述报错。
##一定的时间之后,另外一个server会接管这个mastaer.
上述的数据上传和检测都是自动的。