![Redis分布式解决方案-Coids_第1页](http://file4.renrendoc.com/view/825d7c143ea1751e460bdc5c07691afd/825d7c143ea1751e460bdc5c07691afd1.gif)
![Redis分布式解决方案-Coids_第2页](http://file4.renrendoc.com/view/825d7c143ea1751e460bdc5c07691afd/825d7c143ea1751e460bdc5c07691afd2.gif)
![Redis分布式解决方案-Coids_第3页](http://file4.renrendoc.com/view/825d7c143ea1751e460bdc5c07691afd/825d7c143ea1751e460bdc5c07691afd3.gif)
![Redis分布式解决方案-Coids_第4页](http://file4.renrendoc.com/view/825d7c143ea1751e460bdc5c07691afd/825d7c143ea1751e460bdc5c07691afd4.gif)
![Redis分布式解决方案-Coids_第5页](http://file4.renrendoc.com/view/825d7c143ea1751e460bdc5c07691afd/825d7c143ea1751e460bdc5c07691afd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Codis是一个分布式
Redis
解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的Redis服务.
Codis由四部分组成:CodisProxy
(codis-proxy)
实现redis协议,由于本身是无状态的,因此可以部署很多个节点CodisManager(codis-config)
是codis的管理工具,包括添加/删除redis节点添加删除proxy节点,发起数据迁移等操作,自带httpserver,支持管理后台方式管理配置CodisRedis
(codis-server)
是codis维护的redis分支,基于2.8.21分支,加入了slot的支持和原子的数据迁移命令;codis-proxy和codis-config只能和这个版本的redis交互才能正常运行ZooKeeper
用于codis集群元数据的存储,维护codis集群节点Codis优缺点–
优点•
对客户端透明,与codis交互方式和redis本身交互一样•
支持在线数据迁移,迁移过程对客户端透明•
有简单的管理和监控界面•
支持高可用,无论是redis数据存储还是代理节点•
自动进行数据的均衡分配•
最大支持1024个redis实例,存储容量海量•
高性能–
缺点
•
采用自有的redis分支,不能与原版的redis保持同࠵•
如果codis的proxy只有一个的情况下,redis的性能会下降20%左右•
某些命令不支持,比如事务命令muti•
国内开源产品,活跃度相对弱一些Codis架构Codis的性能(代理+两个redis节点
首先需要安装go环境[html]
\o"viewplain"viewplain
\o"copy"copy
wget
/golang/go1.4.1.linux-amd64.tar.gz
解压[html]
\o"viewplain"viewplain
\o"copy"copy
tar
-zxvf
go1.4.1.linux-amd64.tar.gz
下载zookeeper[html]
\o"viewplain"viewplain
\o"copy"copy
wget
/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
解压[html]
\o"viewplain"viewplain
\o"copy"copy
vi
~/.bash_profile
配置go环境变量还有zkhome[html]
\o"viewplain"viewplain
\o"copy"copy
vi
~/.bash_profile
[html]
\o"viewplain"viewplain
\o"copy"copy
PATH=$PATH:$HOME/bin
export
PATH
JAVA_HOME=/java/jdk1.7.0_76
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export
JAVA_HOME
export
CLASSPATH
ZOOKEEPER_HOME=/java/zookeeper-3.4.6
GOROOT=/java/go
export
GOPATH=/java/codis
PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$ZOOKEEPER_HOME/bin
export
PATH
令环境变量生效[html]
\o"viewplain"viewplain
\o"copy"copy
source
~/.bash_profile
创建codis目录[html]
\o"viewplain"viewplain
\o"copy"copy
mkdir
codis
下载codis代码[html]
\o"viewplain"viewplain
\o"copy"copy
go
get
-u
-d
/CodisLabs/codis
进入到coids里面执行make编译代码编译完成后会在bin目录下面产生3个可执行文件修改config.ini文件[html]
\o"viewplain"viewplain
\o"copy"copy
vi
config.ini
进入zk目录启动zk[html]
\o"viewplain"viewplain
\o"copy"copy
cd
/java/zookeeper-3.4.6/bin
./zkServer.sh
start
通过jps命令查看zk是否启动codis启动步骤[html]
\o"viewplain"viewplain
\o"copy"copy
./codis-config
-c
../config.ini
dashboard
你也可以在后面加上&表示后台启动可以查看zk里面的数据然后初始化slots[html]
\o"viewplain"viewplain
\o"copy"copy
./codis-config
-c
../config.ini
slot
init
这些slot的信息都会保存在zk里面首先可以启动一个codis-server复制一份redis的配置文件过来,然后启动[html]
\o"viewplain"viewplain
\o"copy"copy
./codis-server
./redis.6379.conf
然后添加一个groupserver每一个Servicegroup
作为一个Redis服务器组存在,只允许有一个master,可以有多个slave,groupid
仅支持大于1的整数添加成功
分配slot
启动codis-proxy[html]
\o"viewplain"viewplain
\o"copy"copy
./codis-proxy
-c
../config.ini
-L
./proxy.log
--cpu=1
--addr=03:19000
--http-addr=03:11000
•
Addr为代理绑定的ip和端口•
--cpu为代理使用的cpu核数,与虚拟机的配置有关,一般跟核数相同•
http-addr用于测试的地址
•
-L
指定代理的日志文件
刚启动的时候,默认是offline状态,处于此状态不能对外提供服务把代理状态修改为online访问11000端口申博官网澳门金沙导航宅男福利社www.zhainan.hk
查看到proxy的id,然后修改codisproxy的状态[html]
\o"viewplain"viewplain
\o"copy"copy
./codis-config
-c
../config.ini
proxy
online
proxy_1
也可以通过dashboard查看
连接proxy[html]
\o"viewplain"viewplain
\o"copy"copy
./redis-cli
-p
19000
-h
03
通过\o"JavaEE知识库"Java
客户端连接codis
Pom.xml[html]
\o"viewplain"viewplain
\o"copy"copy
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.codis.jodis</groupId>
<artifactId>jodis</artifactId>
<version>0.3.1</version>
</dependency>
<dependency>
<groupId>com.wandoulabs.jodis</groupId>
<artifactId>jodis</artifactId>
<version>0.2.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<type>jar</type>
<scope>test</scope>
</dependency>
Java代码:[java]
\o"viewplain"viewplain
\o"copy"copy
JedisResourcePool
jedisPool
=
RoundRobinJedisPool.create()
.curatorClient("03:2181",
30000).zkProxyDir("/zk/codis/db_test/proxy").build();
try
(Jedis
jedis
=
jedisPool.getResource())
{
jedis.set("foo",
"bar");
String
value
=
jedis.get("foo");
System.out.println(value);
}
删除刚刚设置的key
运行程序查看结果
Codis高可用codis-haCodis-ha需要单独安装codis-ha
[html]
\o"viewplain"viewplain
\o"copy"copy
go
get
/ngaut/codis-ha
进入codis-ha目录执行build命令[html]
\o"viewplain"viewplain
\o"copy"copy
go
build
启动codis-ha
[html]
HYPERLINK"/a67474
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61010-2-091:2012 EN-FR Safety requirements for electrical equipment for measurement,control and laboratory use - Part 2-091: Particular requirements for cabinet X-ray s
- 企业票据贴现服务行业研究报告
- 水上巴士运营行业发展预测分析报告
- 湖南省公务员行政职业能力测验(数学运算)模拟试卷1
- 农业无人机应用行业发展预测分析报告
- 【正版授权】 IEC 61010-1:2010/AMD1:2016 EN-FR Amendment 1 - Safety requirements for electrical equipment for measurement,control,and laboratory use - Part 1: General requirements
- 电动运载工具充电服务服务行业发展预测分析报告
- 创意内容生成AI行业发展预测分析报告
- 【正版授权】 IEC 61000-4-9:1993/AMD1:2000 EN-FR Amendment 1 - Electromagnetic compatibility (EMC) - Part 4: Testing and measurement techniques - Section 9: Pulse magnetic field immunity
- 通过计算机数据库进行市场研究行业可行性分析报告
- 铁道车辆制动装置检修智慧树知到期末考试答案章节答案2024年山东职业学院
- 《检测与控制仪表应用》课件-4.1压力仪表常见故障与处理
- 自助火锅项目商业计划书(2024-2030)
- 项目交付确认单
- 牧光互补项目可行性研究报告
- 实时操作系统智慧树知到期末考试答案2024年
- 2024安全月培训资料
- 跨境电商营销与大数据分析智慧树知到期末考试答案2024年
- 匠心筑梦成就出彩人生-大学生就业指导智慧树知到期末考试答案2024年
- 国家开放大学《电子商务法律与法规》形考任务1-4参考答案
- 供应链金融合作协议书
评论
0/150
提交评论