codis集群建设方案

本文详细介绍了如何搭建Codis分布式缓存系统,包括安装环境(Go语言、Zookeeper)、下载并配置代码、编译及安装过程,以及启动系统的详细步骤。重点在于通过配置文件实现集群注册、初始化slot、添加服务器、设置slot范围、启动proxy等关键操作,最终实现对外服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

github地址:   https://github.com/wandoulabs/codis
豌豆荚开源项目

搭建环境所需:
1、安装go语言、安装zookeeper
go语言是谷歌的开发语言,需要翻墙下载,解压后直接放在/usr/local/go中即可
地址:百度云  http://pan.baidu.com/s/1pJmWNnP
在环境变量中添加:
export GOROOT=/usr/local/go
export GOPATH=/usr/local/workspace/go
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后source 一下
zookeeper比较容易安装,安装后启动即可
下载zookeeper,
地址: 百度云   http://pan.baidu.com/s/1sjwwlBZ
进入zookeeper/conf/目录,修改server配置(该压缩包中的配置文件为线上配置,需修改为当前所需配置,结构为 ip:2888:3888形式,其余数据目录等地址,如无特殊需求可不改变,此处仅为测试,未搭建zookeeper集群,单台运行)
server.1=192.168.69.10:2888:3888
#server.2=192.168.201.64:2888:3888
#server.3=192.168.201.65:2888:3888
进入zookeeper/bin/目录,启动zookeeper
./zkServer.sh start &

2、下载代码   go get github.com/wandoulabs/codis  (比较慢,需要一点时间)

3、进入所下载的codis项目的目录,目录比较深,最好建立一个软连接到/usr/local/codis下
  cd codis

4、执行安装脚本,会下载所需的一些包(比较慢,需要一些时间)
./bootstrap.sh


5、编译安装:
make gotest

安装完成,下面是启动顺序(该项目的环境变量比较奇葩,没有搞清楚具体是怎么弄得, 所以最好将配置文件放在bin目录下,然后所有执行命令的时候都在bin目录下执行):
配置文件参考: config.ini

zk=192.168.69.10:2181
product=test                              该集群注册到zookeeper的名字(如果需要形成一个整体集群的话,该名字需要一致)
proxy_id=proxy_1                       该proxy的名字(集群中可能有多个proxy,需要用不同的id区分)
net_timeout=5
dashboard_addr=0.0.0.0:18087   该proxy的web页面端口

0、启动web管理界面:

./codis-config dashboard

1、初始化slot

codis-config slot init

2、启动codis-server (命令与redis一样,只是执行的命令改为codis-server,也可以用配置文件启动)

./codis-server /usr/local/codis-redis/etc/redis.conf 

3、 添加codis组(需要一主一备,以下为举例,其中的1、2为编号)

codis-config server add 1 192.168.1.2:6379 master

codis-config server add 1 192.168.1.2:6380 slave

codis-config server add 2 192.168.1.3:6379 master

codis-config server add 2 192.168.1.3:6380 slave


4、设置slot的范围(codis将请求默认分配为1024的slot,然后再按下面的设置将请求分配给不同的服务器)
codis-config slot range-set 0 511 1 online


codis-config slot range-set 512 1023 2 online



5、启动proxy
codis-proxy -c config.ini -L ./log/proxy.log  --cpu=8 --addr=0.0.0.0:19000 --http-addr=0.0.0.0:11000


将proxy开启online,开始对外服务:
codis-config -c config.ini proxy online proxy_1

6、完成

这时可以打开web页面访问了



备注:
如果移除master时无法移除,需要先移除组
以上有多个命令不会后台运行,运行时需要加一个后台运行符号 &
新添加服务器时可以在web界面上点击下面的按钮,以重新自动分配slot,同时也会对已有数据进行重新分配(按照已使用内存和最大内存进行均衡)
Auto Rebalance
codis中的slot和proxy都有online的概念,需要online状态才会开始工作,注意第6.1步骤的时候19000端口不会启动,需要有proxy处于online状态才会启动
在多台服务器中启动多个proxy的话,以上第0、1、2、3、4步都只需在一台服务器中设置,只需在第5步的第一个启动环节分别在两台服务器中启动proxy,第二个环节将proxy也仅在第一台服务器中设置即可
一个比较好的方案是在多proxy的情况下,访问redis的时候用域名,这样当一个proxy挂掉的时候可以迅速切换到另外一个proxy去 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值