codis

一、zookeeper 安装部署

1、安装java环境

yum search jdk

yum install -y java-1.6.0-openjdk

java-version 检测java是否安装完毕

2、安装zookeeper

tar -C /usr/local/ -xf zookeeper-3.4.8.tar.gz

cd /usr/local/

mv zookeeper-3.4.8 zookeeper

chown root:root -R zookeeper/

cd zookeeper

cp conf/zoo_sample.cfg conf/zoo.cfg #将zookeeper加入环境变量

vim /etc/profile

export

PATH=$PATH:/usr/local/zookeeper/bin

source /etc/profile

env

vim /usr/local/zookeeper/conf/zoo.cfg


clientPort=2181

dataDir=/usr/local/zookeeper/data


server.3=172.25.3.3:2888:3888  //

server.4=172.25.3.4:2888:3888

server.5=172.25.3.5:2888:3888

mkdir -p /usr/local/zookeeper/logs

mkdir -p /usr/local/zookeeper/data/myid

//2888表示zookeeper程序监听端口,3888表示zookeeper选举通信端口

 
  • 1

二、、下载并编译安装codis 3.2

cd
mkdir /usr/local/codis/src/github.com/CodisLabs
cd /usr/local/codis/src/github.com/CodisLabs/
wget https://github.com/CodisLabs/codis/archive/codis-release3.2.zip
unzip codis-release3.2.zip
mv codis-release3.2  codis
cd codis
make  
  • 直接通过 make 进行编译时,如果出现下面的报错
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-4.0.1/src'
make: *** [all] Error 2

输入下面的命令

make MALLOC=libc

这里写图片描述
在bin文件夹内生成codis-admin、codis-dashboard、codis-fe、codis-ha、codis-proxy、codis-server六个可执行文件。另外, bin/assets文件夹是codis-dashboard http服务需要的前端资源, 需要和codis-dashboard放置在同一文件夹下。

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
  • 1
为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
  • 1
配置启动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
  • 1

修改配置文件

# Set Coordinator, only accept "zookeeper" & "etcd"
coordinator_name = "zookeeper"
coordinator_addr = "172.25.21.4:2181,172.25.21.6:2181,172.25.21.7:2181"

# Set Codis Product {Name/Auth}.
product_name = "codis-demo"
product_auth = ""

# Set bind address for admin(rpc), tcp only.
admin_addr = "0.0.0.0:18080"

#配置文件参数说明:
coordinator_name:外部存储类型,接受zookeeper/etcd,这里我们使用的zookeeper集群。
coordinator_addr:外部存储地址。
product_name:集群名称,满足正则\w[\w\.\-]*。
product_auth:集群密码,默认为空。
admin_addr:RESTful API端口。

启动dashboard

nohup codis-dashboard --ncpu=2 --config=/data/codis/conf/dashboard.toml --log=/data/codis/log/dashboard.log --log-level=WARN &
  • 1

参数解释: 
–ncpu=N:最大使用CPU个数。 
-c CONF, –config=CONF:指定启动配置文件。 
-l FILE, –log=FILE:设置log输出文件。 
–log-level=LEVEL:设置log输出等级:INFO,WARN,DEBUG,ERROR,默认INFO,推荐WARN。

PS:dashboard只需要在一个节点启动即可,启动时会向zookeeper注册信息(topom),如果有其他节点也启动dashboard时,向zookeeper注册信息发现里面有信息时,就会无法启动的。

配置启动Codis各组件—-启动codis-proxy(集群中所有节点)

生成默认的配置文件:

codis-proxy --default-config | tee /data/codis/conf/proxy.toml
  • 1
vim /data/codis/conf/proxy.toml

product_name = "codis-demo"
product_auth = ""
admin_addr = "0.0.0.0:11080"
proto_type = "tcp4"
proxy_addr = "0.0.0.0:19000"
jodis_addr = "10.0.60.152:2181,10.0.60.153:2181,10.0.60.154:2181"
jodis_timeout = 10
backend_ping_period = 5
session_max_timeout = 1800
session_max_bufsize = 131072
session_max_pipeline = 1024
session_keepalive_period = 60

#配置文件参数介绍:
product_name:产品名称, 这个codis集群的名字, 可以认为是命名空间, 不同命名空间的codis没有交集。
product_auth:集群密码,默认为空。Codis 3.x支持AUTH,但是要求所有组件使用的AUTH必须完全相同。
admin_addr:RESTful API端口。
proto_type:Redis端口类型,接受tcp/tcp4/tcp6/unix/unixpacket。
proxy_addr:Redis端口地址或者路径。
jodis_addr:Jodis注册zookeeper地址。
jodis_timeout:Jodis注册session timeout时间,单位second。
backend_ping_period:与codis-server探活周期,单位second,0表示禁止。
session_max_timeout:与client连接最大读超时,单位second,0表示禁止。
session_max_bufsize:与client连接读写缓冲区大小,单位byte。
session_max_pipeline:与client连接最大的pipeline大小。
session_keepalive_period:与client的tcp keepalive周期,仅tcp有效,0表示禁止。

启动codis-proxy

nohup codis-proxy --ncpu=2 --config=/data/codis/conf/proxy.toml --log=/data/codis/log/proxy.log --log-level=WARN &
  • 1

codis-proxy启动后,处于waiting状态,监听proxy_addr地址,但是不会accept连接,添加到集群并完成集群状态的同步,才能改变状态为online。 
通过codis-fe添加。

配置启动Codis组件—启动codis-fe

生成默认的配置文件:

codis-admin --dashboard-list --zookeeper=127.0.0.1:2181 | tee /data/codis/conf/codis.json
  • 1
vim /data/codis/conf/codis.json
[
    {
        "name": "codis-demo",
        "dashboard": "172.25.21.4:18080"
    }
]






  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值