阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.5下搭建Codis3.1集群详解

148次阅读
没有评论

共计 15766 个字符,预计需要花费 40 分钟才能阅读完成。

codis 3.1 安装搭建

一. 基本信息

1. 服务器基本信息

本次测试只使用了一台服务器 10.20.23.249

2. 环境信息

2.1 codis 版本:3.1 版本
git clone https://github.com/CodisLabs/codis.git -b release3.1

2.2 Go 使用版本:

2.3 jdk 版本:jdk1.7.0_55
http://download.Oracle.com/otn-pub/Java/jdk/8u55-b14/jdk-8u111-linux-x64.tar.gz

2.4 zookeeper 版本:zookeeper-3.4.8.tar.gz
http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

二. 部署 codis

1. 相关组件安装配置

1.1 安装所需依赖包

三台主机上执行
yum install -y gcc make gcc-c++ automake lrzsz openssl-devel zlib-* bzip2-* readline* zlib-* bzip2-* git nmap unzip wget lsof xz net-tools mercurial vim

1.2 修改内核

三台主机上执行
vi /etc/sysctl.conf
vm.overcommit_memory = 1sysctl vm.overcommit_memory=1

手工执行:
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并加到 /etc/rc.local 中

2. 安装 go

rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install golang git -y

mkdir /opt/gopath

vim /etc/profile

export GOPATH=/opt/gopath

查看 go 版本:

go env GOPATH

3. 安装 jdk
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
cd /usr/java/
chmod +x jdk-7u55-linux-x64.rpm
rpm -ivh jdk-7u55-linux-x64.rpm

3.1 配置 java 环境变量
vim /etc/profile

添加如下信息
export JAVA_HOME=/usr/local/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新配置文件:
source /etc/profile

4. 安装 zookeeper

4.1 安装 zookeeper
cd /usr/local/src/
wget http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz
tar zxf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 /usr/local/zookeeper

4.2 生成配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg /opt/zoo.cfg

4.3 修改 zookeeper 配置文件
vim /opt/zoo.cfg

修改以下内容
2888 表示 zookeeper 程序监听端口,3888 表示 zookeeper 选举通信端口。

4.4 创建所需文件夹
mkdir zk1 zk2 zk3

4.5 生成 myid

echo “1” > zk1/myid

echo “2” > zk2/myid

echo “3” > zk3/myid

cp zoo.cfg zk1/zk1.cfg

cp zoo.cfg zk2/zk2.cfg

cp zoo.cfg zk3/zk3.cfg

vim zk2/zk2.cfg

dataDir=/opt/zk2

vim zk3/zk3.cfg

dataDir=/opt/zk3

[root@linux-node1 opt]# grep ‘^[a-z]’ zk1/zk1.cfg

tickTime=2000                    #zookeeper 服务器之间和客户端维持心跳的时间间隔,每段时间他们就会发送一个心跳,微秒

initLimit=10                        #zookeeper 进行选举,初始化连接时,最长能忍受的心跳间隔数,10 次

syncLimit=5                         

dataDir=/opt/zk1                #数据存储的目录

clientPort=2181                  #客户端连接上来的端口

server.1=10.20.23.249:2887:3887    #集群,1 以及下面的 2,3 每一个群集都有一个唯一的 id,就是 myid 的内容,,后面是集群的 ip(不同服务器就会有不同的 ip),第一个端口表示 zookeeper 会选出一个 leader 出来,三个集群之间交换信息的端口,第二个端口表示若是 leader 挂了,就要重新选举,就用这个端口就行选举,zookeeper 也是无中心的

server.2=10.20.23.249:2888:3888

server.3=10.20.23.249:2889:3889

4.6 启动 zookeeper
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk1/zk1.cfg
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk2/zk2.cfg
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk3/zk3.cfg

4.7 关闭 zookeeper
cd /usr/local/zookeeper/bin
./zkServer.sh stot

4.8 查看 zk 状态
查看状态:
[root@linux-node1 ~]# /usr/local/zookeeper/bin/zkServer.sh status /opt/zk1/zk1.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zk1/zk1.cfg
Mode: follower
[root@linux-node1 ~]# /usr/local/zookeeper/bin/zkServer.sh status /opt/zk2/zk2.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zk2/zk2.cfg
Mode: leader

4.9 查看相关信息:
/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

5. 安装 codis(三台主机上执行)

5.1 下载 codis
mkdir /opt/gopath/src/github.com/CodisLabs -p
cd /opt/gopath/src/github.com/CodisLabs
git clone https://github.com/CodisLabs/codis.git -b release3.1

5.2 编译 codis
cd /opt/gopath/src/github.com/CodisLabs/codis
make

5.3 查看 bin
[root@data-1-1 codis]# ll bin/
总用量 111800
drwxr-xr-x 4 root root    4096 3 月  7 00:37 assets
-rwxr-xr-x 1 root root 17398102 3 月  7 00:37 codis-admin
-rwxr-xr-x 1 root root 18899624 3 月  7 00:37 codis-dashboard
-rwxr-xr-x 1 root root 15356742 3 月  7 00:37 codis-fe
-rwxr-xr-x 1 root root 15221328 3 月  7 00:37 codis-ha
-rwxr-xr-x 1 root root 19154689 3 月  7 00:37 codis-proxy
-rwxr-xr-x 1 root root  8873464 3 月  7 00:36 codis-server
-rwxr-xr-x 1 root root  6311752 3 月  7 00:35 codis-server-2.8.21
-rwxr-xr-x 1 root root  6555466 3 月  7 00:36 redis-benchmark
-rwxr-xr-x 1 root root  6683191 3 月  7 00:36 redis-cli
-rw-r–r– 1 root root      167 3 月  7 00:36 version

执行全部指令后,会在 bin 文件夹内生成 codis-admin、codis-dashboard、codis-fe、codis-ha、codis-proxy、codis-server 六个可执行文件。
另外, bin/assets 文件夹是 codis-dashboard http 服务需要的前端资源, 需要和 codis-dashboard 放置在同一文件夹下

5.4 创建 codis 所需目录
mkdir /opt/codis -p
mkdir -p /opt/codis/{logs,conf,scripts,db,run}
mkdir -p /opt/codis/db/{redis_data_6379,redis_data_6380}

5.5 拷贝 codis 的 bin 目录
cp -rf /opt/gopath/src/github.com/CodisLabs/codis/bin/ /opt/codis/

由于 codis 本身只有 codis-server,没有 Redis-cli,需要把 redis 2.8.21 安装包里面的 redis-cli copy 到 /usr/local/codis/bin 下面:
cd /opt/gopath/src/github.com/CodisLabs/codis/extern/redis-2.8.21/src
cp redis-cli /opt/codis/bin/

5.6 配置和启动各组件

配置和启动 Codis 的 Redis
配置文件 : /usr/local/codis/redis_conf/redis6379.conf
设置密码: xxxxx
考虑性能,主库关闭 aof 和 rdp,从库只开启 aof:

cd /opt/gopath/src/github.com/CodisLabs/codis/extern/redis-2.8.21/

cp redis.conf /opt/codis/conf/redis6379.conf

将 redis6379.conf 更改以下参数(主库):

[root@data-1-1 conf]# grep ‘^[a-z]’ redis6379.conf

daemonize yes

pidfile /opt/codis/run/redis6379.pid

port 6379

tcp-backlog 511

timeout 86400

tcp-keepalive 60

loglevel notice

logfile “/opt/codis/logs/redis6379.log”

databases 16

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump6379.rdb

dir /opt/codis/db/redis_data_6379

masterauth “”

slave-serve-stale-data yes

repl-disable-tcp-nodelay no

slave-priority 100

requirepass “”

maxmemory 10gb

maxmemory-policy volatile-lru

appendonly no

appendfsync everysec

no-appendfsync-on-rewrite yes

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

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

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 0 0 0

client-output-buffer-limit pubsub 0 0 0

hz 10

aof-rewrite-incremental-fsync yes

将 redis6380.conf 更改以下参数(从库):

cp /opt/codis/conf/redis6379.conf /opt/codis/conf/redis6380.conf

vim redis6380.conf

:%s/6379/6380/g

保存退出

5.7 启动 redis

执行之前注意将 log 和 data 的文件生成目录建好,不然会启动失败

/opt/codis/bin/codis-server /opt/codis/conf/redis6379.conf &

/opt/codis/bin/codis-server /opt/codis/conf/redis6380.conf &

 

三. 配置 codis
1. 启动 codis bashboard(仅在需要启动管理界面的 codis 的服务器上操作)
Coddis3.0 的 dashboard 与 codis 2.0 有所不同,作为集群管理工具,它支持 codis-proxy,codis-server 的添加、删除以及数据迁移等操作。在集群状态发生改变时,codis-dashboard 维护集群下所有 codis-proxy 的状态一致性。有以下两点注意事项:

对于同一个业务集群而言,同一个时刻 codis-dashboard 只能有 0 个或者 1 个;

所有对集群的修改都必须通过 codis-dashboard 完成。

1.1 配置 Codis Dashboard
默认配置文件 dashboard.toml 可由 codis-dashboard 生成。

生成配置文件(仅需执行修改一次):

/opt/codis/bin/codis-dashboard –default-config | tee /opt/codis/conf/dashboard.toml(就是 dashboard.conf)
生成 dashboard.toml 文件,可自行配置。

CentOS 6.5 下搭建 Codis3.1 集群详解

vim /opt/codis/conf/dashboard.conf 

# Set Coordinator, only accept “zookeeper” & “etcd” & “filesystem”.
coordinator_name = “zookeeper”
coordinator_addr = “” #zookeeper 是集群的话就写多个 ip 和端口用逗号隔开

# 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”

# Set configs for redis sentinel.
sentinel_quorum = 2
sentinel_parallel_syncs = 1
sentinel_down_after = “30s”
sentinel_failover_timeout = “5m”
sentinel_notification_script = “”
sentinel_client_reconfig_script = “” 参数说明:

coordinator_name #外部存储类型,接受 zookeeper/etcd

coordinator_addr #外部存储地址

product_name #集群名称,满足正则 \w[\w\.\-]*

product_auth #集群密码,默认为空

admin_addr #RESTful API 端口

1.2 启动 Codis Dashboard
nohup /opt/codis/bin/codis-dashboard –ncpu=4 –config=/opt/codis/conf/dashboard.conf(这里指定 dashboard.toml 也可以)–log=/opt/codis/logs/dashboard.log –log-level=WARN & 

说明:

–ncpu=N #最大使用 CPU 个数

-c  CONF, –config=CONF #指定启动配置文件

-l  FILE, –log=FILE #设置 log 输出文件

–log-level=LEVEL #设置 log 输出等级:INFO,WARN,DEBUG,ERROR;默认 INFO,推荐 WARN

l  对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;

l  不同 codis-proxy 之间由 codis-dashboard 保证状态同步。

执行完成后出现以下内容说明成功.

more ./logs/dashboard.log 日期

more /opt/codis/logs/dashboard.log.2017-01-19

2. 启动 codis-proxy(仅在需要启动 proxy 的 codis 的服务器上操作)

对于同一个业务集群而言,可以同时部署多个 codis-proxy 实例;不同 codis-proxy 之间由 codis-dashboard 保证状态同步。

2.1 配置 proxy,生成代理配置文件

/opt/codis/bin/codis-proxy –default-config | tee /opt/codis/conf/proxy.conf(proxy.toml)

生成的 proxy.conf 可自行配置:

CentOS 6.5 下搭建 Codis3.1 集群详解

vim /opt/codis/conf/proxy.conf

# 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:11080”

# Set bind address for proxy, proto_type can be “tcp”, “tcp4”, “tcp6”, “unix” or “unixpacket”.

proto_type = “tcp4”

proxy_addr = “0.0.0.0:19000”

配置文件解析:

product_name #集群名称,参考 dashboard 参数说明

product_auth #集群密码,默认为空

admin_addr #RESTfulAPI 端口

proto_type #Redis 端口类型,接受 tcp/tcp4/tcp6/unix/unixpacket

proxy_addr #Redis 端口地址或者路径

jodis_addr #Jodis 注册 zookeeper 地址

jodis_timeout #Jodis 注册 sessiontimeout 时间,单位 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 表示禁止

2.2 启动 codis-proxy

nohup /opt/codis/bin/codis-proxy –ncpu=4 –config=/opt/codis/conf/proxy.conf –log=/opt/codis/logs/proxy.log –log-level=WARN &

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

添加 proxy 的方法有以下两种(选其中任意一种即可):

1)通过 codis-fe 添加:通过 Add Proxy 按钮,将 admin_addr 加入到集群中;

2)通过 codis-admin 命令行工具添加,方法如下:

/opt/codis/bin/codis-admin –dashboard=10.20.23.249:18080 –create-proxy -x 10.20.23.249:11080

 其中 10.20.23.249:18080 以及 10.20.23.249:11080 分别为 dashboard 和 proxy 的 admin_addr 地址;

添加过程中,dashboard 会完成如下一系列动作:

① 获取 proxy 信息,对集群 name 以及 auth 进行验证,并将其信息写入到外部存储中;

② 同步 slots 状态;

③ 标记 proxy 状态为 online,此后 proxy 开始 accept 连接并开始提供服务;

/opt/codis/bin/codis-admin –proxy=10.20.23.249:11080 –auth=”” –shutdown

正常关闭 proxy 操作

/usr/local/codis/bin/codis-admin –proxy=172.16.200.71:11080 –auth=”xxxxx”(有就加,没有就不加) –shutdown

/opt/codis/bin/codis-proxy -h

Usage:

codis-proxy [–ncpu=N][–config=CONF] [–log=FILE] [–log-level=LEVEL] [–host-admin=ADDR]

[–host-proxy=ADDR] [–ulimit=NLIMIT]

codis-proxy  –default-config

codis-proxy  –version

Options:

–ncpu=N #最大使用 CPU 个数

-c CONF, –config=CONF #指定启动配置文件

-l FILE, –log=FILE #设置 log 输出文件

–log-level=LEVEL #设置 log 输出等级:INFO,WARN,DEBUG,ERROR;默认 INFO,推荐 WARN

–ulimit=NLIMIT #检 ulimit -n 的结果,确保运行时最大文件描述不少于 NLIMIT

3. 配置启动 codis FE 集群管理界面(仅在需要启动 dashboard 的 codis 的服务器上操作)

配置文件 codis.json(fe.conf)可以手动编辑,也可以通过 codis-admin 从外部存储中拉取。

生成配置文件(不是每次都需要,生成一次就可以了)

./bin/codis-admin –dashboard-list –zookeeper=192.168.10.61 | tee ./conf/codis.json

[

    {

        “name”: “codis-demo”,

        “dashboard”: “linux-node1:18080”

    }

]

启动 codis-fe

nohup ./bin/codis-fe –ncpu=4 –log=./logs/fe.log –log-level=WARN –dashboard-list=./conf/codis.json –listen=192.168.10.60:18090 &

打开浏览器,在地址栏里输入 http://10.20.23.249:18090,通过管理界面操作 Codis。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141643.htm

codis 3.1 安装搭建

一. 基本信息

1. 服务器基本信息

本次测试只使用了一台服务器 10.20.23.249

2. 环境信息

2.1 codis 版本:3.1 版本
git clone https://github.com/CodisLabs/codis.git -b release3.1

2.2 Go 使用版本:

2.3 jdk 版本:jdk1.7.0_55
http://download.Oracle.com/otn-pub/Java/jdk/8u55-b14/jdk-8u111-linux-x64.tar.gz

2.4 zookeeper 版本:zookeeper-3.4.8.tar.gz
http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

二. 部署 codis

1. 相关组件安装配置

1.1 安装所需依赖包

三台主机上执行
yum install -y gcc make gcc-c++ automake lrzsz openssl-devel zlib-* bzip2-* readline* zlib-* bzip2-* git nmap unzip wget lsof xz net-tools mercurial vim

1.2 修改内核

三台主机上执行
vi /etc/sysctl.conf
vm.overcommit_memory = 1sysctl vm.overcommit_memory=1

手工执行:
echo never > /sys/kernel/mm/transparent_hugepage/enabled

并加到 /etc/rc.local 中

2. 安装 go

rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install golang git -y

mkdir /opt/gopath

vim /etc/profile

export GOPATH=/opt/gopath

查看 go 版本:

go env GOPATH

3. 安装 jdk
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
cd /usr/java/
chmod +x jdk-7u55-linux-x64.rpm
rpm -ivh jdk-7u55-linux-x64.rpm

3.1 配置 java 环境变量
vim /etc/profile

添加如下信息
export JAVA_HOME=/usr/local/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新配置文件:
source /etc/profile

4. 安装 zookeeper

4.1 安装 zookeeper
cd /usr/local/src/
wget http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz
tar zxf zookeeper-3.4.9.tar.gz
mv zookeeper-3.4.9 /usr/local/zookeeper

4.2 生成配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg /opt/zoo.cfg

4.3 修改 zookeeper 配置文件
vim /opt/zoo.cfg

修改以下内容
2888 表示 zookeeper 程序监听端口,3888 表示 zookeeper 选举通信端口。

4.4 创建所需文件夹
mkdir zk1 zk2 zk3

4.5 生成 myid

echo “1” > zk1/myid

echo “2” > zk2/myid

echo “3” > zk3/myid

cp zoo.cfg zk1/zk1.cfg

cp zoo.cfg zk2/zk2.cfg

cp zoo.cfg zk3/zk3.cfg

vim zk2/zk2.cfg

dataDir=/opt/zk2

vim zk3/zk3.cfg

dataDir=/opt/zk3

[root@linux-node1 opt]# grep ‘^[a-z]’ zk1/zk1.cfg

tickTime=2000                    #zookeeper 服务器之间和客户端维持心跳的时间间隔,每段时间他们就会发送一个心跳,微秒

initLimit=10                        #zookeeper 进行选举,初始化连接时,最长能忍受的心跳间隔数,10 次

syncLimit=5                         

dataDir=/opt/zk1                #数据存储的目录

clientPort=2181                  #客户端连接上来的端口

server.1=10.20.23.249:2887:3887    #集群,1 以及下面的 2,3 每一个群集都有一个唯一的 id,就是 myid 的内容,,后面是集群的 ip(不同服务器就会有不同的 ip),第一个端口表示 zookeeper 会选出一个 leader 出来,三个集群之间交换信息的端口,第二个端口表示若是 leader 挂了,就要重新选举,就用这个端口就行选举,zookeeper 也是无中心的

server.2=10.20.23.249:2888:3888

server.3=10.20.23.249:2889:3889

4.6 启动 zookeeper
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk1/zk1.cfg
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk2/zk2.cfg
/usr/local/zookeeper/bin/zkServer.sh start /opt/zk3/zk3.cfg

4.7 关闭 zookeeper
cd /usr/local/zookeeper/bin
./zkServer.sh stot

4.8 查看 zk 状态
查看状态:
[root@linux-node1 ~]# /usr/local/zookeeper/bin/zkServer.sh status /opt/zk1/zk1.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zk1/zk1.cfg
Mode: follower
[root@linux-node1 ~]# /usr/local/zookeeper/bin/zkServer.sh status /opt/zk2/zk2.cfg
ZooKeeper JMX enabled by default
Using config: /opt/zk2/zk2.cfg
Mode: leader

4.9 查看相关信息:
/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181

5. 安装 codis(三台主机上执行)

5.1 下载 codis
mkdir /opt/gopath/src/github.com/CodisLabs -p
cd /opt/gopath/src/github.com/CodisLabs
git clone https://github.com/CodisLabs/codis.git -b release3.1

5.2 编译 codis
cd /opt/gopath/src/github.com/CodisLabs/codis
make

5.3 查看 bin
[root@data-1-1 codis]# ll bin/
总用量 111800
drwxr-xr-x 4 root root    4096 3 月  7 00:37 assets
-rwxr-xr-x 1 root root 17398102 3 月  7 00:37 codis-admin
-rwxr-xr-x 1 root root 18899624 3 月  7 00:37 codis-dashboard
-rwxr-xr-x 1 root root 15356742 3 月  7 00:37 codis-fe
-rwxr-xr-x 1 root root 15221328 3 月  7 00:37 codis-ha
-rwxr-xr-x 1 root root 19154689 3 月  7 00:37 codis-proxy
-rwxr-xr-x 1 root root  8873464 3 月  7 00:36 codis-server
-rwxr-xr-x 1 root root  6311752 3 月  7 00:35 codis-server-2.8.21
-rwxr-xr-x 1 root root  6555466 3 月  7 00:36 redis-benchmark
-rwxr-xr-x 1 root root  6683191 3 月  7 00:36 redis-cli
-rw-r–r– 1 root root      167 3 月  7 00:36 version

执行全部指令后,会在 bin 文件夹内生成 codis-admin、codis-dashboard、codis-fe、codis-ha、codis-proxy、codis-server 六个可执行文件。
另外, bin/assets 文件夹是 codis-dashboard http 服务需要的前端资源, 需要和 codis-dashboard 放置在同一文件夹下

5.4 创建 codis 所需目录
mkdir /opt/codis -p
mkdir -p /opt/codis/{logs,conf,scripts,db,run}
mkdir -p /opt/codis/db/{redis_data_6379,redis_data_6380}

5.5 拷贝 codis 的 bin 目录
cp -rf /opt/gopath/src/github.com/CodisLabs/codis/bin/ /opt/codis/

由于 codis 本身只有 codis-server,没有 Redis-cli,需要把 redis 2.8.21 安装包里面的 redis-cli copy 到 /usr/local/codis/bin 下面:
cd /opt/gopath/src/github.com/CodisLabs/codis/extern/redis-2.8.21/src
cp redis-cli /opt/codis/bin/

5.6 配置和启动各组件

配置和启动 Codis 的 Redis
配置文件 : /usr/local/codis/redis_conf/redis6379.conf
设置密码: xxxxx
考虑性能,主库关闭 aof 和 rdp,从库只开启 aof:

cd /opt/gopath/src/github.com/CodisLabs/codis/extern/redis-2.8.21/

cp redis.conf /opt/codis/conf/redis6379.conf

将 redis6379.conf 更改以下参数(主库):

[root@data-1-1 conf]# grep ‘^[a-z]’ redis6379.conf

daemonize yes

pidfile /opt/codis/run/redis6379.pid

port 6379

tcp-backlog 511

timeout 86400

tcp-keepalive 60

loglevel notice

logfile “/opt/codis/logs/redis6379.log”

databases 16

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump6379.rdb

dir /opt/codis/db/redis_data_6379

masterauth “”

slave-serve-stale-data yes

repl-disable-tcp-nodelay no

slave-priority 100

requirepass “”

maxmemory 10gb

maxmemory-policy volatile-lru

appendonly no

appendfsync everysec

no-appendfsync-on-rewrite yes

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

aof-load-truncated yes

lua-time-limit 5000

slowlog-log-slower-than 10000

slowlog-max-len 128

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

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 0 0 0

client-output-buffer-limit pubsub 0 0 0

hz 10

aof-rewrite-incremental-fsync yes

将 redis6380.conf 更改以下参数(从库):

cp /opt/codis/conf/redis6379.conf /opt/codis/conf/redis6380.conf

vim redis6380.conf

:%s/6379/6380/g

保存退出

5.7 启动 redis

执行之前注意将 log 和 data 的文件生成目录建好,不然会启动失败

/opt/codis/bin/codis-server /opt/codis/conf/redis6379.conf &

/opt/codis/bin/codis-server /opt/codis/conf/redis6380.conf &

 

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计15766字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中