codis配置(策略)

codis简介:

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务。

go环境配置:

[root@server1 ~]#tar -zxf go1.8.linux-amd64.tar.gz 
[root@server1 ~]#mv go /usr/local/
[root@server1 ~]# ls
codis-release3.2.zip  go1.8.linux-amd64.tar.gz
[root@server1 ~]# which go
/usr/local/go/bin/go
[root@server1 ~]# go env
[root@server1 ~]# go env GOPATH
/root/go
[root@server1 ~]# vim .bash_profile 
---
export PATH=$PATH:/usr/local/go/bin

---

安装codis:

[root@server1 ~]# mkdir -p go/src/github.com/CodisLabs/
[root@server1 ~]# ls
codis-release3.2.zip  go  go1.8.linux-amd64.tar.gz
[root@server1 ~]# unzip codis-release3.2.zip 
...
[root@server1 ~]# ls
codis-release3.2  codis-release3.2.zip  go  go1.8.linux-amd64.tar.gz
[root@server1 ~]# mv codis-release3.2 ./go/src/github.com/CodisLabs/
[root@server1 ~]# cd go/src/github.com/CodisLabs/
[root@server1 CodisLabs]# mv ./codis-release3.2/ codis
[root@server1 CodisLabs]# cd codis/
[root@server1 codis]# yum install -y git autoconf gcc
[root@server1 codis]# make
[root@server1 codis]# ./admin/codis-dashboard-admin.sh start
/root/go/src/github.com/CodisLabs/codis/admin/../config/dashboard.toml
starting codis-dashboard ... 
[root@server1 codis]# ./admin/codis-proxy-admin.sh start
/root/go/src/github.com/CodisLabs/codis/admin/../config/proxy.toml
starting codis-proxy ... 
[root@server1 codis]# ./admin/codis-server-admin.sh start
/root/go/src/github.com/CodisLabs/codis/admin/../config/redis.conf
starting codis-server ... 
[root@server1 codis]# ./admin/codis-fe-admin.sh start

starting codis-fe ... 
[root@server1 codis]# bin/codis-server 
16884:C 12 Aug 17:39:49.978 # Warning: no config file specified, using the default config. In order to specify a config file use bin/codis-server /path/to/redis.conf
16884:M 12 Aug 17:39:49.979 * Increased maximum number of open files to 10032 (it was originally set to 1024).
16884:M 12 Aug 17:39:49.979 # Creating Server TCP listening socket *:6379: bind: Address already in use
[root@server1 codis]# redis-cli -c -p 6379
127.0.0.1:6379> set oo pp
OK
127.0.0.1:6379> get oo
"pp"

配置:

[root@server1 codis]# cd  config/
[root@server1 config]# ls
dashboard.toml  proxy.toml  redis.conf  sentinel.conf
[root@server1 config]# grep -v ^# redis.conf >redis1.conf
[root@server1 config]# vim redis1.conf #只改端口,不重复就行。eg:6381
[root@server1 config]# cp redis1.conf redis2.conf   
[root@server1 config]# cp redis1.conf redis3.conf   
[root@server1 config]# vim redis2.conf  #改端口
[root@server1 config]# vim redis3.conf  #改端口
[root@server1 config]# cd ..
[root@server1 codis]# ./bin/codis-server config/redis1.conf 
[root@server1 codis]# ./bin/codis-server config/redis2.conf 
[root@server1 codis]# ./bin/codis-server config/redis3.conf 
...
[root@server1 codis]# ps ax
  PID TTY      STAT   TIME COMMAND
...
16896 ?        Ssl    0:00 ./bin/codis-server 127.0.0.1:6381    
16901 ?        Ssl    0:00 ./bin/codis-server 127.0.0.1:6382    
16915 ?        Ssl    0:00 ./bin/codis-server 127.0.0.1:6383    
16919 pts/0    R+     0:00 ps ax
[root@server1 codis]# 
然后就是配置组了

添加组


这里写图片描述

这里写图片描述

这里写图片描述


codis-proxy高可用

一、需要jdk环境,所以先配置jdk环境

tar zxf jdk-7u79-linux-x64.tar.gz 
mv jdk1.7.0_79/ /usr/local/ 
cd /usr/local/ 
ln -s jdk1.7.0_79/ java

配置java环境变量
vim /etc/profile
在里面添加下面几行

      export JAVA_HOME=/usr/local/java
      export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
      export PATH=$PATH:$JAVA_HOME/bin /etc/profile

JAVA_HOME 后跟上面jdk解压目录
我将解压包移到/usr/local下 并创建了名为java的软连接,所以写/usr/local/java

  • 查看路径:
echo $JAVA_HOME
echo $CLASSPATH
echo $PATH 
which java 
which javac

二、GO 安装

[root@server1 ~]# tar -zxf go1.8.linux-amd64.tar.gz  -C /usr/local/
[root@server1 ~]# vim /etc/profile

##最后面添加以下几行
export GOPATH=/usr/local/codis
export GOROOT=/usr/local/go
export PATH=$PATH:/usr/local/go/bin

[root@server1 ~]# source /etc/profile
[root@server1 ~]# go version
go version go1.8 linux/amd64

三、 Zookeeper安装

tar -xzf zookeeper-3.4.6.tar.gz -C /usr/local/
vim /etc/profile
---
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6/
export PATH=$PATH:/usr/local/go/bin:$ZOOKEEPER_HOME/bin
---
source /etc/profile 
  • 配置zookeeper,修改配置文件:
cp /usr/local/zookeeper-3.4.6/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.6/conf/zoo.cfg
vim /usr/local/zookeeper-3.4.6/conf/zoo.cfg
---
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
autopurge.snapRetainCount=500
autopurge.purgeInterval=24
clientPort=2181
#server.1=codis-1:2888:3888
#server.2=codis-2:2888:3888
#server.2=codis-3:2888:3888
---
mkdir -p /data/zookeeper/data
echo "1" > /data/zookeeper/data/myid

设置myid:
设置myid在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件配置的srver.X中的X为什么数字,则myid文件就输入这个数字,我只有一台zk,所以配置文件里可以不配置server.X,但还是要配置myid的,echo一个数字1进去即可。如果有多台zk,则分别在zk服务器上echo对应的数字进对应的myid文件

  • 配置host

       vim /ect/hosts
       172.25.5.1 zookeeper-1
       172.25.5.2 zookeeper-2
       172.25.5.3 zookeeper-3
    
[root@server1 ~]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@server1 ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone

cat zookeeper.out
查看日志。

配置config.ini

[root@server1 ~]# vim /usr/local/codis/config.ini
zk=localhost:2181
product=test
proxy_id=proxy_1
net_timeout=5
dashboard_addr=localhost:18087
coordinator=zookeeper
1、启动zookeeper
zkServer.sh start

2、启 动CodisDashboard组 件 , 
cd $GOPATH/src/github.com/CodisLabs/codis
./admin/codis-dashboard-admin.sh start
cat log/codis-dashboard.log.2018-8-11 

3、启动CodisProxy组件
./admin/codis-proxy-admin.sh start
tail log/codis-proxy.log.2011-8-11 

4、启动 Codis Server 组件
./admin/codis-server-admin.sh start
tail /tmp/redis_6379.log 

5、启动 Codis Fe 组件
./admin/codis-fe-admin.sh start
tail log/codis-fe.log.2018-8-11 

Codis目录重建

[root@server1 ~]# mkdir -p /data/codis/sh
[root@server1 ~]# mkdir -p /data/codis/conf
[root@server1 ~]# mkdir -p /data/codis/log
[root@server1 ~]# mkdir -p /data/codis/run
[root@server1 ~]# mkdir -p /data/codis/redis/bin
[root@server1 ~]# mkdir -p /data/codis/redis/redis-6379
[root@server1 ~]# mkdir -p /data/codis/redis/redis-6380

[root@rhel65-lockey1 ~]# cd $GOPATH/src/github.com/CodisLabs/codis/extern/redis-3.2.8/src/

配置启动Codis各组件—-启动Redis
主库:/data/codis/redis/redis-6379/redis.conf

 vim redis.conf
 ---
#port 6379
port 6379

#daemonize no
daemonize yes

---

codis-server /data/codis/redis/redis-6379/redis.conf

启动顺序

  • start zookeeper //启动zookeeper服务
  • change config items in config.ini //修改codis配置文件
  • ./start_dashboard.sh //启动 dashboard
  • ./start_redis.sh //启动redis实例
  • ./add_group.sh //添加redis组,一个redis组只能有一个master
  • ./initslot.sh //初始化槽
  • ./start_proxy.sh //启动proxy
  • ./set_proxy_online.sh //上线proxy项目
  • open browser to http://localhost:18087/admin //访问web
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值