codis初步搭建
来源:互联网 发布:php 统计数组重复次数 编辑:程序博客网 时间:2024/06/05 20:41
codis使用
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务
下载与编译
安装go运行环境
在这里我是网上下载的go1.8.linux-amd64.tar.gz压缩包
[root@server11 ~]# tar zxf go1.8.linux-amd64.tar.gz -C /usr/local/
设置go环境变量
[root@server11 ~]# vim /etc/profile
export GOROOT=/usr/local/goexport PATH=$GOROOT/bin:$PATHexport GOPATH=/home/user/go
[root@server11 ~]# source /etc/profile
[root@server11 ~]# go version
go version go1.8 linux/amd64
检测
写一个简单的go测试程序
[root@server11 ~]# vim hello.go
package main import "fmt" func main(){ fmt.Print("hello!!!\n")}
[root@server11 ~]# go run hello.go
hello!!!
安装codis
Codis采用源码安装,使用的安装包为codis-release3.2.zip
[root@server11 ~]# mkdir -p $GOPATH/src/github.com/CodisLabs[root@server11 ~]# unzip codis-release3.2.zip[root@server11 ~]# mv codis-release3.2 /home/user/go/src/github.com/CodisLabs/codis[root@server11 ~]# cd /home/user/go/src/github.com/CodisLabs/codis[root@server11 codis]# lsadmin config Dockerfile Godeps pkg vendoransible deploy example Makefile README.md versioncmd doc extern MIT-LICENSE.txt scripts wandoujia_license.txt
在编译之前还需要安装相应的包用来解决依赖关系
[root@server11 codis]# yum install -y gcc-c++ git autoconf
编译
[root@server11 codis]# makemake -j4 -C extern/redis-3.2.8/cache-oblivious : 1=========================================go build -i -o bin/codis-dashboard ./cmd/dashboardgo build -i -tags "cgo_jemalloc" -o bin/codis-proxy ./cmd/proxygo build -i -o bin/codis-admin ./cmd/admingo build -i -o bin/codis-fe ./cmd/fe
快速启动
[root@server11 codis]# ./admin/codis-dashboard-admin.sh start[root@server11 codis]# tail -100 ./log/codis-dashboard.log.2017-10-19[root@server11 codis]# ./admin/codis-server-admin.sh start[root@server11 codis]# tail -100 /tmp/redis_6379.log.2017-10-19[root@server11 codis]# ./admin/codis-proxy-admin.sh start[root@server11 codis]# tail -100 ./log/codis-proxy.log.2017-10-19[root@server11 codis]# ./admin/codis-fe-admin.sh start[root@server11 codis]# tail -100 ./log/codis-fe.log.2017-10-19查看一下日志中是否有报错信息,注意,这里日志的日期是自动补齐的
过滤查看一下codis
查看工作端口
登陆测试页面
通过web浏览器访问集群管理页面(fe地址:127.0.0.1:9090) 选择我们刚搭建的集群 codis-demo
在 Proxy 栏可看到我们已经启动的 Proxy, 但是 Group 栏为空,因为我们启动的 codis-server 并未加入到集群 添加 NEW GROUP,NEW GROUP 行输入 1,再点击 NEW GROUP 即可 添加 Codis Server,Add Server 行输入我们刚刚启动的 codis-server 地址,添加到我们刚新建的 Group,然后再点击 Add Server 按钮即可
通过fe初始化slot
新增的集群 slot 状态是 offline,因此我们需要对它进行初始化(将 1024 个 slot 分配到各个 group),而初始化最快的方法可通过 fe 提供的 rebalance all slots 按钮来做
zookeeper的安装
首先安装开发工具及openjdk,zookeeper是由Java语言开发的,所以需要openjdk环境。
[root@server11 ~]# yum groupinstall "Development tools" "Compatibility libraries" -y[root@server11 ~]# yum install openssl-devel openssl -y[root@server11 ~]# yum install java-1.8.0-openjdk-devel java-1.8.0-openjdk -y
确定Java运行环境正常
[root@server11 ~] java -versionopenjdk version "1.8.0_101"OpenJDK Runtime Environment (build 1.8.0_101-b13)OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
开始装zookeeper
[root@server11 ~]# tar zxf zookeeper-3.4.6.tar.gz[root@server11 ~]# ln -s /usr/local/zookeeper-3.4.6/ /usr/local/zookeeper[root@server11 ~]# cd /usr/local/zookeeper/conf[root@server11 ~]# cp zoo_sample.cfg zoo.cfg
编译zookeeper配置文件/usr/local/zookeeper/conf/zoo.cfg
maxClientCnxns=60tickTime=2000initLimit=10syncLimit=5dataDir=/data/zookeeper/dbdataLogDir=/data/zookeeper/logclientPort=2181# cluster configureserver.1=172.25.30.11:2888:3888server.2=172.25.30.12:2888:3888server.3=172.25.30.13:2888:3888
[root@server11 ~]# mkdir /data/zookeeper/{db,log} -p
这里只给出了server11的配置,server12和server13同理
下面需要生成ID,这里需要注意,myid对应的zoo.cfg的server.ID,比如第二台zookeeper主机对应的myid应该是2,以此类推,三个主机分别为:
[root@server11 ~]# echo 1 > /data/zookeeper/db/myid[root@server12 ~]# echo 2 > /data/zookeeper/db/myid[root@server13 ~]# echo 3 > /data/zookeeper/db/myid
输出环境变量及启动zookeeper
Vim /etc/profile
Source /etc/profile
[root@server11 ~] zkServer.sh start
查看状态
[root@server11 conf]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: follower[root@server12 conf]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: leader[root@server13 conf]# zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper/bin/../conf/zoo.cfgMode: follower
客户端连接,可以查看相关信息
[root@server13 conf]# zkCli.sh -server 127.0.0.1:2181Connecting to 127.0.0.1:21812017-10-19 17:01:29,598 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT2017-10-19 17:01:29,605 [myid:] - INFO [main:Environment@100] - Client environment:host.name=<NA>2017-10-19 17:01:29,605 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_65......WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: 127.0.0.1:2181(CONNECTED) 0]
配置组件
主库为6379,从库为6380
[root@server11 conf]# mkdir -p /data/codis/redis/redis-6379[root@server11 conf]# mkdir -p /data/codis/redis/redis-6380
配置主库的组件
主库:/data/codis/redis/redis-6379/redis.confdaemonize yespidfile /data/codis/run/redis-6379.pidport 6379tcp-backlog 65535bind 0.0.0.0timeout 0tcp-keepalive 0loglevel noticelogfile "/data/codis/log/redis-6379.log"databases 16lua-time-limit 5000maxclients 10000slowlog-log-slower-than 10000slowlog-max-len 128maxmemory 3Gmaxmemory-policy noevictionclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yeslatency-monitor-threshold 0
从库:/data/codis/redis/redis-6380/redis.conf
pidfile /data/codis/run/redis-6380.pidport 6380tcp-backlog 65535bind 0.0.0.0timeout 0tcp-keepalive 0loglevel noticelogfile "/data/codis/log/redis-6380.log"databases 16lua-time-limit 5000maxclients 10000slowlog-log-slower-than 10000slowlog-max-len 128maxmemory 3Gmaxmemory-policy noevictionno-appendfsync-on-rewrite yesappendonly yesappendfilename "appendonly.aof"appendfsync noauto-aof-rewrite-min-size 512mbauto-aof-rewrite-percentage 100aof-load-truncated yesaof-rewrite-incremental-fsync yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yeslatency-monitor-threshold 0
使用codis-server启动redis
[root@server11 ~]# codis-server /data/codis/redis/redis-6379/redis.conf[root@server11 ~]# codis-server /data/codis/redis/redis-6380/redis.conf
启动dashboard
首先生成默认的配置文件:
codis-dashboard --default-config | tee /data/codis/conf/dashboard.toml
启动
nohup codis-dashboard --ncpu=2 --config=/data/codis/conf/dashboard.toml --log=/data/codis/log/dashboard.log --log-level=WARN &
启动codis-proxy
生成配置文件
[root@server11 ~]# codis-proxy --default-config | tee /data/codis/conf/proxy.toml
启动
nohupcodis-proxy--ncpu=2--config=/data/codis/conf/proxy.toml--log=/data/codis/log/proxy.log --log-level=WARN &
admin_addr 加入到集群
codis-admin --dashboard=172.25.30.11:18080 --create-proxy -x 172.25.30.11:11080codis-admin --dashboard=172.25.30.12:18080 --create-proxy -x 172.25.30.12:11080codis-admin --dashboard=172.25.30.13:18080 --create-proxy -x 172.25.30.12:11080
- codis初步搭建
- 搭建codis
- 搭建Codis
- codis搭建部署实验
- codis集群搭建
- codis集群搭建
- codis集群 搭建
- codis集群搭建
- Centos搭建Codis集群完整版
- codis 3.0.3安装搭建
- CODIS(release3.2.0)集群搭建
- codis
- Codis
- Codis集群的搭建与使用
- Codis集群的搭建与使用
- Codis集群的搭建与使用
- codis集群的搭建与使用
- Codis集群的搭建与使用
- TStringList.CommaText中空格的问题
- Python--day4 运算符
- 栈和队列(二)
- "mysql database connections will be migrated"
- UGUI的简单用法
- codis初步搭建
- c语言实现文件夹的创建和删除
- c的一些学习感悟(字符变量和字符指针)
- unity 确定与取消对话框
- MyBatis与Hibernate有什么异同
- keras学习笔记(1)-Keras的模块架构
- mysql官网下载及安装
- 利用集合实现一个简单的购物商城
- substr函数