快速构建一个单机版测试 codis 集群

codis简介:

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

codis由四部分组成:

codis proxy(codis-proxy)
codis dashboard(codis-config)
codis redis(codis-server)
zookeeper/etcd

codis-proxy是客户端连接的redis代理服务,codis-proxy本身实现了redis协议,表现得和一个原生的redis没什么区别
codis-config是codis的管理工具,支持包括:添加/删除redis节点,添加/删除proxy节点,发起数据迁移等操作。
codis-config本身还自带了一个http-server,会启动一个dashboard,用户可以直接在浏览器上观察codis集群的运行状态。
codis-server是codis项目维护的一个redis分支,基于redis2.8.21开发,加入了slot的支持和原子的数据迁移指令。codis上层
的codis-proxy和codis-config只能和这个版本的redis交互才能正常运行。
codis依赖zookeeper来存放数据路由表和codis-proxy节点的元信息,codis-config发起的命令都会通过zookeeper同步到各个
存活的codis-proxy。

codis的优缺点:

Codis是一套用go语言编写的,为了应对高并环境下的redis集群软件,原理是对一个redis key操作前,
先把这个key通过crc32算法,分配到不同redis的某一个slot上,实现并发读写功能.而且能通过zookeeper
调用redis-sentinel来实现故障切换功能.现在最新版本是3.2.1,依托于redis3.2.9开发出来.
优点:实现高并发读写,数据一致性高.
缺点:性能有较大损耗,故障切换无法保证不丢key,无法进行读写分离.

简单搭建一个web集群,实验环境:

server2:172.25.254.2

.bash_profile和.bashrc的区别:

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,
该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,
该该文件被读取.
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)
只能继承/etc/profile中的变量,他们是"父子"关系.

配置环境变量:

[root@server2 ~]# ls
codis-release3.2.zip  go1.8.linux-amd64.tar.gz
[root@server2 ~]# tar zxf go1.8.linux-amd64.tar.gz -C /usr/local/
[root@server2 ~]# pwd
/root
[root@server2 ~]# ls
codis-release3.2.zip  go1.8.linux-amd64.tar.gz
[root@server2 ~]# vim .bash_profile 
[root@server2 ~]# source .bash_profile   必须刷新生效
[root@server2 ~]# cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/go/bin

export PATH
[root@server2 ~]# go env    go env用于打印Go语言的环境信息
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"

这里写图片描述
Codis 源代码需要下载到 $GOPATH/src/github.com/CodisLabs/codis:

[root@server2 ~]# vim .bash_profile 
[root@server2 ~]# source .bash_profile 
[root@server2 ~]# cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值