1、豌豆荚Codis优点
codis-proxy基于GO和C语言,并发处理能力强劲。
后端基于solt概念,支持灵活、对用户透明的扩容和缩容操作,基于一键式auto-rebalance。
基于zookeeper提供了高可用的codis-proxy代理服务。
集群管理工具丰富:不仅有命令行工具集,也支持页面配置,十分方便
搭建简单codis
安装JDK
yum install jdk-8u171-linux-x64.rpm
安装zookeeper
tar zxf zookeeper-3.4.9.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.9/ /usr/local/zookeeper
编译zookeeper配置文件/usr/local/zookeeper/conf/zoo_sample.cfg
server7=172.25.20.7:2888:3888
server8=172.25.20.8:2888:3888
server9=172.25.20.9:2888:3888
其中2888表示zookeeper程序监听端口,3888表示zookeeper选举通信端口。
mkdir /data/zookeeper/{db,log} -p
echo 1 > /data/zookeeper/db/myid
vim /etc/profile #最后面添加
export PATH=$PATH:/usr/local/zookeeper/bin/
source /etc/profile #刷新环境变量
zkServer.sh start #主机都启动服务
zkServer.sh status
基础依赖,使用如下命令:
yum install -y git gcc make g++ gcc-c++ automake openssl-devel zlib-*
各组件安装目录
安装gcc 安装mercurial包 安装git包
扫描二维码关注公众号,回复:
2720877 查看本文章
yum insatll gcc
yum install mercurial
yum install git
安装go运行环境
tar -zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
vim /etc/profile.d/go.sh #修改环境变量
#!/bin/bash
export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
chmod +x /etc/profile.d/go.sh
source /etc/profile.d/go.sh
go version
go version go1.8 linux/amd64
下载并编译安装codis 3.2
cd
mkdir /usr/local/codis/src/github.com/CodisLabs -p
cd /usr/local/codis/src/github.com/CodisLabs/
unzip codis-release3.2.zip
mv codis-release3.2 codis
cd codis
make
编译完成
vim /etc/profile.d/go.sh #修改环境变量
export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PATH=$PATH:/usr/local/codis/src/github.com/CodisLabs/codis/bin/
#export PATH=$PATH:/data/codis/redis/bin
source /etc/profile.d/go.sh
为Codis创建标准目录
mkdir -p /data/codis/sh
mkdir -p /data/codis/conf
mkdir -p /data/codis/log
mkdir -p /data/codis/run
mkdir -p /data/codis/redis/bin
mkdir -p /data/codis/redis/redis-6379
mkdir -p /data/codis/redis/redis-6380
添加环境变量
vim /etc/profile.d/go.sh
#!/bin/bash
export GOROOT=/usr/local/go
export GOPATH=/usr/local/codis/
export PATH=$PATH:$GOROOT/bin
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
export PATH=$PATH:/usr/local/codis/src/github.com/CodisLabs/codis/bin/
export PATH=$PATH:/data/codis/redis/bin
source /etc/profile.d/go.sh
配置启动Codis各组件—-启动Redis
codis服务器
vim /data/codis/redis/redis-6379/redis.conf
daemonize yes
pidfile /data/codis/run/redis-6379.pid
port 6379
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/data/codis/log/redis-6379.log"
databases 16
lua-time-limit 5000
maxclients 10000
###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128
###内存参数###
maxmemory 3G
maxmemory-policy noeviction
###RDB持久化参数###
#save 3600 1
#stop-writes-on-bgsave-error yes
#rdbcompression yes
#rdbchecksum yes
#dbfilename dump.rdb
###AOF持久化参数###
#no-appendfsync-on-rewrite yes
#appendonly yes
#appendfilename "appendonly.aof"
#appendfsync no
#auto-aof-rewrite-min-size 512mb
#auto-aof-rewrite-percentage 100
#aof-load-truncated yes
#aof-rewrite-incremental-fsync yes
###客户端Buffer参数###
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0
###安全参数###
#requirepass 123456789
vim /data/codis/redis/redis-6380/redis.conf
daemonize yes
pidfile /data/codis/run/redis-6380.pid
port 6380
tcp-backlog 65535
bind 0.0.0.0
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/data/codis/log/redis-6380.log"
databases 16
lua-time-limit 5000
maxclients 10000
###慢日志参数###
slowlog-log-slower-than 10000
slowlog-max-len 128
###内存参数###
maxmemory 3G
maxmemory-policy noeviction
###RDB持久化参数###
#save 3600 1
#stop-writes-on-bgsave-error yes
#rdbcompression yes
#rdbchecksum yes
#dbfilename dump.rdb
###AOF持久化参数###
no-appendfsync-on-rewrite yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync no
auto-aof-rewrite-min-size 512mb
auto-aof-rewrite-percentage 100
aof-load-truncated yes
aof-rewrite-incremental-fsync yes
###客户端Buffer参数###
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
###其他参数###
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
latency-monitor-threshold 0
###安全参数###
#requirepass 123456789
使用codis-server启动redis
codis-server /data/codis/redis/redis-6379/redis.conf
codis-server /data/codis/redis/redis-6380/redis.conf
配置启动Codis各组件—启动dashboard
codis-dashboard --default-config | tee /data/codis/conf/dashboard.toml
修改配置文件
启动codis-proxy
nohup codis-proxy --ncpu=2 --config=/data/codis/conf/proxy.toml --log=/data/codis/log/proxy.log --log-level=WARN &
vim /data/codis/conf/codis.json
{
{
"name": "codis-demo",
"dashboard": "172.25.21.4:18080"
}
}
启动codis-fe,注意启动codis-fe的时候,必须要使用codis-fe的全路径进行启动
nohup /usr/local/codis/src/github.com/CodisLabs/codis/bin/codis-fe --ncpu=2 --log=/data/codis/log/fe.log --log-level=WARN --dashboard-list=/data/codis/conf/codis.json --listen=0.0.0.0:8080 &
可以用ps ax 看进程
web监控端口是8080端口,我们可以在浏览器打开http://172.25.21.4:8080看看图形化界面。