codis-server 集群安装及部署

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:

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


Codis 由四部分组成:


Codis Proxy (codis-proxy)
Codis Manager (codis-config)
Codis Redis (codis-server)
ZooKeeper


wKiom1b0seLBzXEGAADhv2xnT8o838.png

一,安装zookeeper

安装java环境
ZooKeeper 要求 JAVA 的环境才能运行,并且需要 JAVA6 以上的版本,可以


从官网上下载,并对 JAVA 环境变量进行设置。
yum -y install java-1.7.0-openjdk-devel

jave -version 显示版本


安装zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 /usr/local/zookeeper
mkdir -p /data/zookeeper/{data,logs}

cp zoo_sample.cfg zoo.cfg配置zoo.cfg
vim /usr/local/zookeeper/conf/zoo.cfg 
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/data/zookeeper/data
#dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=zookeeper-1:2888:3888



设置myid
在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字
[root@zookeeper-1 ~]# echo 1 > /data/zookeeper/data/myid



启动zookeeper
启动顺序zookeeper-1>zookeeper-2>zookeeper-3
[root@zookeeper-1 zookeeper]# zkServer.sh start  
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper-1 zookeeper]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Mode: leader
可以看到最先开始启动的是leader,其他两个是follower


设置开机启动
vim /etc/rc.local
/usr/local/zookeeper/bin/zkServer.sh start


设置环境变量
vim /etc/profile
export ZOOKEEPERPATH=/usr/local/zookeeper
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$ZOOKEEPERPATH/bin:$CODISPATH/bin


source /etc/profile


二,安装codis集群

1,安装go
设置环境变量
vim /etc/profile
export GOROOT=/usr/local/go
export CODISPATH=/usr/local/codis
export PATH=$PATH:$GOROOT/bin:$CODISPATH/bin
source /etc/profile
下载安装go
cd /usr/local/
wget http://golangtc.com/static/go/go1.3.3.linux-amd64.tar.gz

如果下载不了,可以尝试手动下载tar包
tar -zxvf go1.3.3.linux-amd64.tar.gz                                     go version
go version go1.3.3 linux/amd64

2,安装依赖环境
yum groupinstall "Development Tools"


3,安装codis
yum install -y git

安装前首先要设置go_path的路径,我默认给它设置到/usr/local/go_path,然后在下载前我们需要在go_path下提前建立一个bin的目录。

go get -u -d github.com/CodisLabs/codis

克隆一个窗口,监控codis的下载进度: tcpdump -i eth0 host github.com的ip地址


切换到$GOPATH/src/github.com/CodisLabs/codis目录执行make命令编译代码,并执行make gotest来跑测试

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

安装完成后 redis的配置目录在:

/usr/local/go_path/src/github.com/CodisLabs/codis/extern/下

redis的配置 信息见上一博客的redis配置


按需求配置coids中config.ini 的配置文件信息

在添加时加上-c参数 制定config.ini配置文件地址
codis-config -c ../config.ini server add 1 172.16.12.26:6380 salver

dashboard_addr=0.0.0.0:18087
zk=172.16.12.26:2181

启动dashboard

codis-config dashboard &

初始化呢solt 只能第一次安装使用

 codis-config slot init

启动codis

codis-server /etc/redis/redis_6380.conf 

codis-server /etc/redis/redis_6381.conf 



添加 Redis Server Group

每一个 Server Group 作为一个 Redis 服务器组存在, 只允许有一个 master, 可以有多个 slave, group id 仅支持大于等于1的整数

$ bin/codis-config server -h                                                                                                                                                                                                                   usage:
    codis-config server list
    codis-config server add <group_id> <redis_addr> <role>
    codis-config server remove <group_id> <redis_addr>
    codis-config server promote <group_id> <redis_addr>
    codis-config server add-group <group_id>
    codis-config server remove-group <group_id>
    
    
    添加组 一主一从
    codis-config server add 1 localhost:6380 master
    codis-config server add 1 localhost:6381 salver
    
    在浏览器中输入:  进入界面验证


本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1757904如需转载请自行联系原作者


laihuadongcto

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
存储 运维 NoSQL
Redis Cluster集群模式部署
Redis Cluster集群模式部署
121 4
|
3月前
|
Kubernetes NoSQL Redis
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server
|
NoSQL Redis
redis_cluster集群启动失败问题解决方案
删除每个节点的.aof |.rdb | nodes-*.conf
150 0
|
6月前
|
存储 SQL 分布式计算
搭建Mysql Cluster集群实现高可用
搭建Mysql Cluster集群实现高可用
151 0
|
存储 负载均衡 监控
【2023】Redis cluster集群模式搭建
【2023】Redis cluster集群模式搭建
493 0
|
安全 NoSQL MongoDB
一键安装脚本实现快速部署GrayLog Server 4.2.10单机版
一键安装脚本实现快速部署GrayLog Server 4.2.10单机版
447 0
一键安装脚本实现快速部署GrayLog Server 4.2.10单机版
|
关系型数据库 MySQL Java
nacos集群+nginx+mysql持久化搭建
nacos集群+nginx+mysql持久化搭建
218 0
nacos集群+nginx+mysql持久化搭建
|
Apache 数据安全/隐私保护
在wildfly 21中搭建cluster集群
在wildfly 21中搭建cluster集群
在wildfly 21中搭建cluster集群
|
canal 消息中间件 otter
Canal v1.1.4版本搭建HA集群
Canal上一个正式版是于2019-9-2发布的v1.1.4,笔者几个月前把这个版本的Canal推上了生产环境,部署了HA集群。过程中虽然遇到不少的坑,但是在不出问题的前提下,Canal的作用还是非常明显的。上周的一次改造上线之后,去掉了原来对业务系统订单数据通过RabbitMQ实时推送的依赖,下游的统计服务完全通过上游业务主库的binlog事件进行聚合,从而实现了核心业务和实时统计两个不同的模块解耦。这篇文章简单分析一下如何搭建生产环境下可靠的Canal高可用集群。
594 0
Canal v1.1.4版本搭建HA集群
|
监控 NoSQL Linux
CentOS 7单机安装Redis Cluster(3主3从伪集群),仅需简单五步
CentOS 7单机安装Redis Cluster(3主3从伪集群),仅需简单五步
182 0
CentOS 7单机安装Redis Cluster(3主3从伪集群),仅需简单五步