使用codis实现Redis分布式集群管理

一、对Redis的认识
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (有一些命令不支持), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务,当然,前段时间redis官方的3.0出了稳定版,3.0支持集群功能,codis的实现原理和3.0的集群功能差不多。

二、架构实现

go安装

实验环境:
server:172.25.23.2 

[root@server2 redis]# tar go1.8.linux-amd64.tar.gz
[root@server2 redis]# tar zxf go1.8.linux-amd64.tar.gz -C /usr/local/
[root@server2 redis]# cd
[root@server2 ~]# vim .bash_profile 
[root@server2 ~]# source .bash_profile 
[root@server2 ~]# go env
[root@server2 ~]# go env GOPATH
/root/go #执行的环境目录
[root@server2 redis]# mkdir -p go/src/github.com/CodisLabs[root@server2 redis]# unzip codis-release3.2.zip -d go/src/github.com/CodisLabs
[root@server2 redis]# cd go/src/github.com/CodisLabs/codis-release3.2/
[root@server2 codis-release3.2]# ls
admin    deploy      extern           pkg        version
ansible  doc         Godeps           README.md  wandoujia_license.txt
cmd      Dockerfile  Makefile         scripts
config   example     MIT-LICENSE.txt  vendor
[root@server2 codis-release3.2]# cd ..
[root@server2 CodisLabs]# ls
codis-release3.2
[root@server2 CodisLabs]# mv codis-release3.2/ codis
[root@server2 CodisLabs]# cd codis/
[root@server2 codis]# pwd
/root/redis/go/src/github.com/CodisLabs/codis
[root@server2 codis]# yum install -y git autoconf gcc 
[root@server2 codis]make

使用codis实现Redis分布式集群管理_第1张图片
使用codis实现Redis分布式集群管理_第2张图片
使用codis实现Redis分布式集群管理_第3张图片

[root@server2 codis]# ./admin/codis-dashboard-admin.sh start
/root/redis/go/src/github.com/CodisLabs/codis/admin/../config/dashboard.toml
starting codis-dashboard ... 
[root@server2 codis]# ./admin/codis-proxy-admin.sh start
/root/redis/go/src/github.com/CodisLabs/codis/admin/../config/proxy.toml
starting codis-proxy ... 
[root@server2 codis]# ./admin/codis-server-admin.sh start
/root/redis/go/src/github.com/CodisLabs/codis/admin/../config/redis.conf
starting codis-server ... 
[root@server2 codis]# ./admin/codis-fe-admin.sh start

starting codis-fe ... 

使用codis实现Redis分布式集群管理_第4张图片

[root@server2 codis]# cd config/
[root@server2 config]# ls
dashboard.toml  proxy.toml  redis.conf  sentinel.conf
[root@server2 config]# grep -v ^# redis.conf  > redis1.conf 
[root@server2 config]# vim redis1.conf 
[root@server2 config]# grep -v ^# redis.conf  > redis2.conf 
[root@server2 config]# grep -v ^# redis.conf  > redis3.conf 
[root@server2 config]# grep -v ^# redis.conf  > redis4.conf 
[root@server2 config]# cd ..
[root@server2 codis]# ./bin/codis-server 
8824:C 12 Aug 23:39:34.887 # Warning: no config file specified, using the default config. In order to specify a config file use ./bin/codis-server /path/to/redis.conf
8824:M 12 Aug 23:39:34.888 * Increased maximum number of open files to 10032 (it was originally set to 1024).
8824:M 12 Aug 23:39:34.888 # Creating Server TCP listening socket *:6379: bind: Address already in use
[root@server2 codis]# ./bin/codis-server config/redis1.conf 
[root@server2 codis]# ./bin/codis-server config/redis2.conf 
[root@server2 codis]# ./bin/codis-server config/redis3.conf 
[root@server2 codis]# cd bin/
[root@server2 bin]# ./redis-cli -p 19000
127.0.0.1:19000> set hello world

使用codis实现Redis分布式集群管理_第5张图片
使用codis实现Redis分布式集群管理_第6张图片
检测:

[root@server2 bin]# ./redis-cli -p 19000
127.0.0.1:19000> get hello
"world"
127.0.0.1:19000> get iii
"www"

使用codis实现Redis分布式集群管理_第7张图片
使用codis实现Redis分布式集群管理_第8张图片
使用codis实现Redis分布式集群管理_第9张图片
使用codis实现Redis分布式集群管理_第10张图片

你可能感兴趣的:(服务)