三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

实现单机部署codis

实现单机部署codis

目录

一.进入go官网,下载go

1.1下载版本为1.17.3的go,用于编译 Codis

1.2解压go的压缩包到/usr/local/目录下

1.3配置go的环境变量

二.设置编译环境

三.下载 Codis 源代码,并完成编译

3.1完成源码安装及编译

3.2编译过程中的问题

四.构建一个单机版测试 codis 集群

4.1启动codis-dashboard

4.2启动codis-proxy

4.3启动codis-server

4.4启动codis-fe

4.5网页查看

4.5.1登录你的本机IP:9090端口,进入dashboard页面

4.5.2.查看6379端口是否开启

4.5.3通过fe添加组

4.5.4自动分配slof

五.单机部署多套codis-server

5.1相关介绍

5.2官网下载ansible,并解压

5.3将当前 Ansible 源码目录加入到环境变量中

5.4配置hosts和groups_var/all文件

5.4Ansible 的连通性测试

5.4.1正常情况

5.4.2遇到的问题

5.5执行部署

5.5.1停止之前启动的节点

5.5.2执行部署

5.5.3遇到的问题

5.6创建多个服务配置文件

5.6.1复制redis的配置文件

5.6.2修改文件配置的端口号、保护模式、以及相关目录路径

5.6.3用codis-server服务,运行这四个redis

5.6.4进入网页配置redis的主从以及solf


一.进入go官网,下载go

1.1下载版本为1.17.3的go,用于编译 Codis

1.2解压go的压缩包到/usr/local/目录下

tar -xvf go1.17.3.linux-amd64.tar.gz

1.3配置go的环境变量

vim .bash_profile source .bash_profile go version

二.设置编译环境

设置GOPATH和GOROOT环境

go env GOPATH vim .bash_profile source .bash_profile

$GOPATH是本机所有第三方库 go 项目所在目录,也是我们的工作目录

$GOROOT是GO语言的家目录,你下载go的目录

三.下载 Codis 源代码,并完成编译

3.1完成源码安装及编译

mkdir -p /root/go/src/github.com/CodisLabs cd /root/go/src/github.com/CodisLabs git clone https://github.com/CodisLabs/codis.git -b release3.2 #下载源码 cd codis make

3.2编译过程中的问题

问题1:Codis 是老版本 GOPATH 项目,使用 Godeps 管理依赖,但你当前 Go 1.17 默认启用了 Go Modules 模式。

解决办法:关闭 Go Modules,使用 GOPATH 模式

export GO111MODULE=off

四.构建一个单机版测试 codis 集群

4.1启动codis-dashboard

./admin/codis-dashboard-admin.sh start #启动dashboard tail -100 ./log/codis-dashboard.log.2026-08-03 #查看日志

4.2启动codis-proxy

./admin/codis-proxy-admin.sh start #启动codis-proxy服务 tail -100 ./log/codis-proxy.log.2026-08-03 #查看日志

4.3启动codis-server

./admin/codis-server-admin.sh start #启动codis-server tail -100 /tmp/redis_6379.log

4.4启动codis-fe

./admin/codis-fe-admin.sh start #启动codis-fe tail -100 ./log/codis-fe.log.2026-08-03

4.5网页查看

4.5.1登录你的本机IP:9090端口,进入dashboard页面

4.5.2.查看6379端口是否开启

netstat -antlp | grep 6379

4.5.3通过fe添加组

4.5.4自动分配slof

五.单机部署多套codis-server

5.1相关介绍

Ansible是一个极其简单的IT自动化系统。它能处理 配置管理、应用部署、云配置, 临时任务执行、网络自动化和多节点编排。

实现步骤:使用 ansible 可快速在单机、多机部署多套 codis 集群。 ansible 文件夹包含了部署 codis 集群的 playbook,根据自己部署环境修改groups_var/all文件里参数,修改 hosts 文件添加部署的环境 IP 即可。

5.2官网下载ansible,并解压

yum install -y unzip #下载解压缩命令 unzip ansible-stable-2.3.zip

5.3将当前 Ansible 源码目录加入到环境变量中

cd ./ansible-stable-2.3 source ./hacking/env-setup #将当前 Ansible 源码目录加入到环境变量中

5.4配置hosts和groups_var/all文件

cd /root/go/src/github.com/CodisLabs/codis/ansible/ ll vim hosts vim group_var/all

5.4Ansible 的连通性测试

作用:用于测试 Ansible 是否能通过 SSH 管理目标主机。

5.4.1正常情况

ansible -i hosts all -m ping

5.4.2遇到的问题

1.问题1:找不到yaml模块

解决:安装适配的模块

yum install -y epel-release python-pip pip install YYAML==3.12

2.问题2:没有jinja2的模块

解决办法:安装相应的模块

pip install MarkupSate==1.0 pip install jinja==2.10

5.5执行部署

5.5.1停止之前启动的节点

pkill codis-dashboard pkill codis-proxy pkill codis-server pkill codis-fe

5.5.2执行部署

ansible-playbook -i hosts site.yml

5.5.3遇到的问题

问题1:没找到所需的用户codis,系统上未创建该用户

解决办法:创建codis用户

useradd codis id codis

5.6创建多个服务配置文件

5.6.1复制redis的配置文件

cd /data/codis-vip/config cp redis.conf redis-6380.conf cp redis.conf redis-6381.conf cp redis.conf redis-6382.conf mkdir -p /data/redis-6380 mkdir -p /data/redis-6381 mkdir -p /data/redis-6382

5.6.2修改文件配置的端口号、保护模式、以及相关目录路径

vim /data/codis-vip/config/redis.conf #默认的端口号是6379 vim /data/codis-vip/config/redis-6381.conf vim /data/codis-vip/config/redis-6380.conf vim /data/codis-vip/config/redis-6382.conf

6379:

6380:

6381:

6382:

5.6.3用codis-server服务,运行这四个redis

/data/codis-vip/bin/codis-server /data/codis-vip/config/redis.conf /data/codis-vip/bin/codis-server /data/codis-vip/config/redis-6380.conf /data/codis-vip/bin/codis-server /data/codis-vip/config/redis-6381.conf /data/codis-vip/bin/codis-server /data/codis-vip/config/redis-6382.conf ps -ef | grep codis-server #查看redis是否启动

5.6.4进入网页配置redis的主从以及solf

← 返回列表