redis集群codis的搭建使用

一、codis安装前准备工作

1、参考链接

Codis:https://github.com/CodisLabs/codis/blob/master/doc/tutorial_zh.md

            http://0xffff.me/blog/2014/11/11/codis-de-she-ji-yu-shi-xian-1/

Codis-port:https://github.com/CodisLabs/redis-port

Codis-FAQ:https://github.com/CodisLabs/codis/blob/master/doc/FAQ_zh.md

Zookeeper:https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

GO:https://golang.org/

 

2、准备几个目录备用

/work/soft        - 软件下载目录

/work/servers  - 软件安装目录

   go  - go安装目录【GOROOT】

   zookeeper-3.4.6 - zookeeper安装目录【ZOOKEEPER_HOME】

/work/gospace - 本机所有go项目(包括项目依赖的第三方库)的所在目录(包括codis和codis-port)【GOPATH】

/work/codis  - codis和codis-port源码下载目录

    logs - codis启动的相关日志目录(dashboard.log/proxy.log/slot.log/request.log/redis-port.log)

    rdb  - redis的RDB文件路径

/work/codis_bin - 一个软链接到codis/bin

/work/codis_port_bin - 一个软链接到codis_port/bin

/etc/codis   - codis启动的一系列配置文件(redis_xxx.conf/zoo.cfg/codis的config.ini)

 

3、环境介绍

使用一台虚拟机搭建一个codis伪集群,zookeeper没有使用集群[配置很简单,自己操作]。 

①1个redis-server - 使用它的redis.conf配置文件以及使用它模拟从redis导数据到codis集群
②1个zookeeper  -  中间件
③6个端口不同实例相同的codis-server - 见[三、codis运行]
④2个codis-proxy - 只不过配置文件不同 
⑤192.168.56.101 - 宿主机能够访问的IP(虚拟机的网络连接,网卡1:NAT,网卡2:host-only;家庭电脑尽量使用桥接,并且静态地址)
  redis-server和codis-server的不同:codis-server 是 Codis 项目维护的一个 Redis 分支, 基于 2.8.21 开发, 加入了 slot 的支持和原子的数据迁移指令. Codis 上层的 codis-proxy 和 codis-config 只能和这个版本的 Redis 交互才能正常运行。 

 

4、go/zookeeper/jdk/redis安装和环境变量配置(codis是go语言开发)

(1)进入/work/soft目录,cd /work/soft

(2)下载并解压go安装包:  

wget https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
tar -zx[v]f go1.6.linux-amd64.tar.gz -C /work/servers 
 (3)下载并安装zookeeper安装包:
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar -zx[v]f zookeeper-3.4.6.tar.gz -C /work/servers
cd /work/servers/zookeeper-3.4.6
mkdir data && mkdir logs
  修改zoo.cfg几个关键属性: 
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/work/servers/zookeeper-3.4.6/data
dataLogDir=/work/servers/zookeeper-3.4.6/logs
clientPort=2181

 最后把配置文件放到/etc/codis中,

cp /work/servers/zookeeper-3.4.6/conf/zoo.cfg /etc/codis/zoo.cfg

(4)jdk安装略... 

(5)redis安装略...

(6)准备codis-server(6个redis服务)的启动文件:

 修改redis.conf,主要修改这几点: 

daemonize yes
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump_6379.rdb
dir /work/codis/rdb

 然后执行下面命令:  

cp redis.conf /etc/codis/redis_6378.conf && sed -i 's/6379/6378/g' /etc/codis/redis_6378.conf
cp redis.conf /etc/codis/redis_6478.conf && sed -i 's/6379/6478/g' /etc/codis/redis_6478.conf
cp redis.conf /etc/codis/redis_6379.conf
cp redis.conf /etc/codis/redis_6479.conf && sed -i 's/6379/6479/g' /etc/codis/redis_6479.conf
cp redis.conf /etc/codis/redis_6380.conf && sed -i 's/6379/6380/g' /etc/codis/redis_6380.conf
cp redis.conf /etc/codis/redis_6480.conf && sed -i 's/6379/6480/g' /etc/codis/redis_6480.conf

 (7)配置环境变量,执行命令:vim /etc/profile,在最后一行添加: 

export GOROOT=/work/servers/go
export GOPATH=/work/gospace
export ZOOKEEPER_HOME=/work/servers/zookeeper-3.4.6
export JAVA_HOME=你的jdk根路径
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$GOROOT/bin:$GOPATH/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

 配置ok,刷新环境变量;  .或者source  /etc/profile。

 

(8)测试三个必须软件是否正常安装:

jdk - 执行java命令

zookeeper 

   - 启动命令:zkServer.sh start /etc/codis/zoo.cfg

   - 停止命令:zkServer.sh stop /etc/codis/zoo.cfg

   - 查看状态:zkServer.sh status /etc/codis/zoo.cfg

go - 编写个小程序(摘自go官网) 

  package main
  import "fmt"
  func main() {
	fmt.Println("Hello, 世界")
  }

 执行命令:go run hello.go。

 

 

二、codis安装与配置

1、安装codis前,需要先装下git: 

yum install -y git

 2、下载codis源码(下载目录自动到GOPATH=/work/gospace中):  

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

 3、切换到/work/gospace/src/github.com/CodisLabs/codis,编译测试:  

make && make gotest

 4、执行成功了上面的命令,会在bin文件夹中生成三个可执行文件:codis-config、codis-proxy、codis-server,常用命令查询: 

./codis-config -c /etc/codis/config.ini proxy -h
./codis-config -c /etc/codis/config.ini action -h
./codis-config -c /etc/codis/config.ini slot -h
./codis-config -c /etc/codis/config.ini server -h
./codis-config -c /etc/codis/config.ini dashboard -h

 5、在/work目录建立软链接方便进入bin目录: 

ln -s /work/gospace/src/github.com/CodisLabs/codis/bin codis_bin

 6、编辑config.ini文件,主要修改2点: 

zk=192.168.56.101:2181(如果是zookeeper集群,用逗号隔开继续添加)
dashboard_addr=192.168.56.101:18087
【下面可选修改】
[product=test 其实就是个Namespace区分项目,改完后在zookeeper中的路径会稍微不同,如:/zk/codis/db_product名字]
[proxy_id=proxy1 改完在启动proxy的时候,注意proxy_id的名字]

 ip地址改为客户端能访问到的,最好别搞成127.0.0.1;然后copy到/etc/codis/目录。

 

 

三、codis的运行

【说明】:

(1)首先创建2个group(group-1,group-2),分配redis端口号:6378(master-group1)、6478(slave-group1)、6379(master-group2)、6479(slave-group2),槽位分配group1:0-511,group2:512-1023;

(2)然后再创建1个group(group-3),分配redis端口号6380(master-group3)、6480(slave-group3),重新分配槽位:group1:0-340,group2:341-680,group3:681-1023; 

(3)以下所有的bash文件都是在codis_bin目录中;

(4)首次启动codis,必须按照下面1-6的顺序依次启动命令。

1、首先启动zookeeper[如果安装时候已启动,自动忽略]:

论zookeeper重要性:Codis依赖ZooKeeper来存放数据路由表和codis-proxy节点的元信息,codis-config发起的命令都会通过ZooKeeper同步到各个存活的codis-proxy。 

zkServer.sh start /etc/codis/zoo.cfg

 2、启动dashboard,方便起见写到bash文件[下同]:  

#!/bin/bash
nohup ./codis-config -c /etc/codis/config.ini -L /work/codis/logs/dashboard.log dashboard --addr=192.168.56.101:18087 --http-log=/work/codis/logs/request.log > /dev/null 2>&1 &

--addr的ip地址不能写成127.0.0.1 否则访问页面打不开。

执行:ps -ef | grep codis 能看到: 

root      1536     1  0 16:38 ?        00:00:42 ./codis-config -c /etc/codis/config.ini -L /work/codis/logs/dashboard.log dashboard --addr=192.168.56.101:18087 --http-log=/work/codis/logs/request.log
root      1970  1122  0 18:33 pts/0    00:00:00 grep codis

 3、启动redis: 

#!/bin/bash
echo 'redis starting'
./codis-server /etc/codis/redis_6378.conf
./codis-server /etc/codis/redis_6478.conf
./codis-server /etc/codis/redis_6379.conf
./codis-server /etc/codis/redis_6479.conf
./codis-server /etc/codis/redis_6380.conf
./codis-server /etc/codis/redis_6480.conf
echo 'done'

 4、初始化group: 

#!/bin/bash
echo 'groups initializing...'
./codis-config -c /etc/codis/config.ini server add 1 localhost:6378 master
./codis-config -c /etc/codis/config.ini server add 1 localhost:6478 slave

./codis-config -c /etc/codis/config.ini server add 2 localhost:6379 master
./codis-config -c /etc/codis/config.ini server add 2 localhost:6479 slave
echo 'done'

5、初始化slot: 

#!/bin/bash
echo 'slots starting...'
./codis-config -c /etc/codis/config.ini action remove-fence
./codis-config -c /etc/codis/config.ini slot init -f

./codis-config -c /etc/codis/config.ini slot range-set 0 511 1 online
./codis-config -c /etc/codis/config.ini slot range-set 512 1023 2 online
echo 'done'

6、启动proxy: 

#!/bin/bash
echo 'shutdown codis-proxy'
./codis-config -c /etc/codis/config.ini proxy offline proxy_1

sleep 2
echo 'codis-proxy starting'
nohup ./codis-proxy -c /etc/codis/config.ini --log-level=info -L /work/codis/logs/proxy.log --cpu=3 --addr=192.168.56.101:19000 --http-addr=192.168.56.101:11000 &>/dev/null &

[下面命令非必须(执行也不报错),官方文档有点问题:它指出启动后的proxy是offline状态,但是实验发现是online状态的,所以无需执行下面设置为online的命令]
sleep 2
echo 'setting codis-proxy online'
./codis-config -c /etc/codis/config.ini proxy online proxy_1
echo 'done'

 

 

全部启动正常后,打开chrome,访问:http://192.168.56.101:18087/admin/,可以看到如下界面(此时你看不到group3):



 

 

 

 

四、codis的模拟各种场景测试

1、用java程序写测试程序:

JedisResourcePool jedisPool = RoundRobinJedisPool.create().curatorClient("192.168.56.101:2181", 30000).zkProxyDir("/zk/codis/db_test/proxy").build();
Jedis jedis = jedisPool.getResource();
while(++i < 10000){
 jedis.setnx("num:"+i, i+"");
}

2、多线程测试程序: 

public static String randomstr(){
	Random rnd = new Random();
	return ""+rnd.nextInt(Integer.MAX_VALUE);
}

public static void init_data(JedisResourcePool jedisPool){
	for(int i = 0; i < 100; i++){
		new myThread(jedisPool).start();
	}
}
static class myThread extends Thread{
	private JedisResourcePool jedisPool;
	public myThread(JedisResourcePool jedisPool){
		this.jedisPool = jedisPool;
	}
	public void run() {
		for(int i=0;i<1000;i++){
			String randomstr = randomstr();
			Jedis jedis = jedisPool.getResource();
			jedis.setnx(randomstr, randomstr);
			System.out.println(Thread.currentThread().getName()+"=======>>>>"+randomstr);
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				System.out.println(e.getMessage() + "=======>>>>" + randomstr);
				e.printStackTrace();
			} finally{
				jedis.close();
			}
		}
	}
}

 3、程序检测key值定位到哪个slot: 

CRC32 crc32 = new CRC32();
crc32.update("num:1".getBytes());
System.out.println(crc32.getValue() % 1024);

  

4、把6479-redis(slave)从group1中remove掉,然后向6379-redis(master)插入数据,看是否继续同步数据到6479-redis(slave): 

./codis-config -c /etc/codis/config.ini server remove 2 localhost:6479

  

5、保持程序2在正常运行状态,同时添加group3,重新分配迁移slot,查看是否抛异常.

依次执行下面命令: 

./codis-config -c /etc/codis/config.ini server add 3 localhost:6380 master
./codis-config -c /etc/codis/config.ini server add 3 localhost:6480 slave
./codis-config -c /etc/codis/config.ini slot migrate 0 340 1 --delay=5
./codis-config -c /etc/codis/config.ini slot migrate 341 680 2 --delay=5
./codis-config -c /etc/codis/config.ini slot migrate 681 1023 3 --delay=5

 6、再启动一个proxy(proxy_2):

  【说明】:

==================================================

①config.ini中使用相同的zookeeper,dashboard_addr,product, 不同的proxy_id;

②start_proxy_2.sh中设置不同的addr,http-addr端口号,以及log日志文件名

==================================================

 复制一份config.ini重命名为config_2.ini

cd /etc/codis
cp config.ini config_2.ini && sed -i 's/proxy_1/proxy_2/g' config_2.ini

 启动proxy_2:  

#!/bin/bash
echo 'shutdown codis-proxy-2'
./codis-config -c /etc/codis/config_2.ini proxy offline proxy_2

sleep 2
echo 'codis-proxy-2 starting'
nohup ./codis-proxy -c /etc/codis/config_2.ini --log-level=info -L /work/codis/logs/proxy_2.log --cpu=3 --addr=192.168.56.101:19001 --http-addr=192.168.56.101:11001 &>/dev/null &

sleep 2
echo 'setting codis-proxy-2 online'
./codis-config -c /etc/codis/config_2.ini proxy online proxy_2
echo 'done'

启动成功后,保持程序2在正常运行状态,测试几点: 

①使用页面端mark offline按钮停掉其中一个proxy;

②然后再启动停掉的proxy;

③分别使用kill或者kill -9杀死某个proxy的进程

 

7、虚拟机退出后,再次开启,只需要启动zookeeper、dashboard、redis、proxy即可,测试以下几点:

①观察slave/master的redis是否还是slave/master;

②调用程序插入数据是否正常;

③主从同步是否正常。

 

五、测试总结

1、同一个组中,remove掉某个slave,插入到master的数据,还能同步到该slave中、

 

2、挂掉整个系统,重新启动dashboard,控制页面虽然能看到master和slave的redis状态,实际上slave不再是slave,而是master,需要进行重新add-slave操作。

 

3、dashboard启动不来,报错如下: 

dashboard.go:234: [PANIC] create zk node failed
   [error]: dashboard already exists: {"addr": "192.168.56.101:18087", "pid": 1242}

 

解决方案:delete /zk/codis/db_test/dashboard

 

4、删除一个已分配slot的group,或者redis-master时,报错: 

[error]: http status code 500, cannot remove master, use promote first

 

解决方案:已分配slot的group是删除不了的,只能转移slot数据。删除redis-master也必然不行,一个group必须有个master。可以先指定一个slave升级为master,然后可以删除该master。

 

5、kill -9强制关闭proxy,codis无法区分是否正常下线或者session过期。然后再操作分配slot时候,出现错误。

解决办法:

./codis-config -c /etc/codis/config.ini action remove-fence 
或者 进入zookeeper手动删除/zk/codis/db_test/fence

 

6、slot的迁移,程序运行对迁移状态不影响,可以在dashboard看到迁移动态。

 迁移原理:http://0xffff.me/blog/2014/11/11/codis-de-she-ji-yu-shi-xian-part-2

[ Codis 不适合少量key,value特别大的应用(这种不用分布式了,直接用单个redis就可以), 更适合海量 Key, value比较小(<= 1 MB) 的应用]

 

六、使用codis-port把项目中redis数据迁移到codis集群

1、修改安装redis-server的redis.conf的端口号为6580:

 

sed -i 's/6379/6580/g' redis.conf

 

2、启动安装的redis实例:   

redis-server ../conf/redis.conf

 

3、写个程序往6580-redis插入10w条数据:

 

Jedis jedis = new Jedis("192.168.56.101", 6580);
for(int i=20000;i<100000;i++){
	jedis.set("i:"+i, ""+i);
}

4、下载安装、编译redis-port:

cd /work
go get -u -d github.com/CodisLabs/codis-port
cd /work/gospace/src/github.com/CodisLabs/codis-port && make
ln -s /work/gospace/src/github.com/CodisLabs/redis-port/bin codis_port_bin

 5、redis数据导入到codis集群:

cd /work/codis_port_bin

 执行命令:

#!/bin/bash
nohup ./redis-port sync --ncpu=3 --from=127.0.0.1:6580 --target=192.168.56.101:19000 > /work/codis/logs/redis-port.log 2>&1 &
sleep 3
tail -f /work/codis/logs/redis-port.log

 

 

MacOS上如何修改jupyter book的默认打开地址以及如何复制文件路径 记点笔记,才换新系统小半年,还是不太熟悉,所以记录一下笔记,感觉之后也会用到,希望能帮到你们。主要内容是:修改jupyter的默认地址以及复制文件路径。 阅读详情

相关推荐

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2062

Redis集群Codis安装

本文介绍豌豆荚公司的Redis集群方案Codis集群的安装,亲测成功。

allen_zw29的博客 1642

【飞控】UAV Toolbox Support Package for PX4 Autopilots安装与配置

安装配置UAV Toolbox Support Package for PX4 Autopilots硬件安装包

m0_58373406的博客 1617

redis-setnx-实现原理

redis

weixin_46161383的博客 846

视觉定位避坑指南:基于双mark点的坐标转换常见错误排查

本文详细解析了工业视觉项目中基于双mark点的坐标转换常见错误及排查方法,涵盖旋转矩阵构建、坐标系原点选择、图像预处理优化等关键环节。通过实战案例和代码示例,帮助工程师避免定位偏差,提升系统精度,特别适用于自动化检测和精密制造场景。

7z8x2c4v6b9的博客 167

别再折腾环境了!Windows 11 + VSCode + CMake 3.31.4 + MinGW-w64 一键式配置指南(附常见报错解决)

本文提供Windows 11下VSCode、CMake 3.31.4和MinGW-w64的一键式配置指南,帮助开发者快速搭建高效C++开发环境。涵盖工具链选型、环境变量配置、项目初始化及常见报错解决方案,大幅提升开发效率。

weixin_28841265的博客 186

基于codis实现分布式锁

文章目录初始化JedisResourcePool使用原子操作来申请与释放锁 mariadb为方便oracle用户迁移,在10.3版本起,支持sequence。 初始化JedisResourcePool RoundRobinJedisPool会 轮流连接当前可用的codisProxy @ConfigurationProperties(prefix = &quot;codis&quot;) public class ...

wzp1986的专栏 1619

petalinux i2c的配置

1.硬件平台配置 1.内核配置 cd petalinux-config -c kernel -> Device Drivers -> I2C support -> i2C Hardware Bus support -> Xilinx I2C Controller Pressing 启用CONFIG_I2C_XILINX=y 2.修改用户设备树 cd cd project-spec/meta-user/recipes-bsp/device-tree/files/ i2c2:

u013403954的博客 4313

Redis——redis集群方案之codis集群的搭建部署

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

试试看吧。 934

AD(十四)调用已有的PCB元件封装库

软件:Altium Designer 16 需要资料:已有的PCB原理图文件(.PCBDOC)或者PCB库文件(.PCBLIB)(来源文中细说) 调用已有的PCB元件封装库(一)从已有的PCB原理图文件(*.PCBDOC)中调用1、PCB原理图文件来源2、打开已有的PCB原理图文件(*.PCBDOC)3、生成PCB封装库4、复制封装到工程文件下的PCB库文件(*.PCBLIB)5、重名问题(二)从已有的PCB库文件(*.PCBLIB)中调用1、PCB库文件(*.PCBLIB)的来源2、打开已有的PCB库 (

Curnane0_0的博客 5083

2024 年高教社杯全国大学生数学建模竞赛 E 题 交通流量管控 详细思路+matlab代码+python代码+论文范例

随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道。景区周边道路上既有本地居民出行,也有过境车辆,化配置,在保证车辆通行的前提下,使得两条主路上的车流平均速度最大。对五一黄金周期间的数据进行分析,判定寻找停车位的巡游车辆,并估算假。相位通过的每辆车的信息,包括拍摄地点、行驶方向、拍摄时间和车牌号。济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。纬中路交叉口,根据车流量的差异,可将一天分成若干个时段,估。是小镇中两条主路的情况:纬中路,从环西路到环东路,约。

YOLO 3310

Linux下分布式redis集群方案之codis集群的搭建部署

Linux下分布式redis集群方案之codis集群的搭建部署 对于Redis集群方案有好多种,基本常用的就是twemproxy,codis,redis cluster这三种解决方案。 Linux下分布式redis集群方案之codis集群的搭建部署Linux下分布式redis集群方案之codis集群的搭建部署codis介绍 codis介绍 ...

weixin_44891093的博客 363

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2874

Redis分布式集群实战(六)——codis集群的搭建

文章目录一、Codis原理1、什么是Codis?2、Codis组成3、Codis的架构4、Codis的优缺点5、zookeeper二、codis集群的搭建部署 一、Codis原理 1、什么是Codis? Codis 是一个 分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别(不支持的命令列表), 上层应用可以...

ranrancc_的博客 1017

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[redis]-centos7搭建codis集群

10.6.12.119 (安装zk,codis-server-master,codis-dashboard,codis-proxy,codis-fe) 10.6.12.120 (安装zk,codis-server-master,codis-proxy) 10.6.12.121 (安装zk,codis-server-master,codis-proxy) 10.6.12.122...

爷来辣的博客 715

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Redis分布式集群实战(4)——redis集群之Codis讲解和搭建

文章目录一、什么是LNMP?二、了解LNMP工作原理三、cgi(Common Gateway Interface、通用网关接口)四、什么是fast-cgi五、php-fpm(php-Fastcgi Process Manager)六、Nginx+FastCGI运行原理 一、什么是LNMP? color=#00ffff LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器...

CapejasmineY的博客 913

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Codis实战博客-分布式Redis集群搭建

把手带你基于 GitHub 开源项目 **Codis**([CodisLabs/codis](https://github.com/CodisLabs/codis))从安装 Go 1.7.3、源码编译,到启动 Dashboard / Proxy / FE,再到 Web 界面添加服务器组、初始化 Slots,完整跑通一套分布式 Redis 集群。

2402_84601187的博客 199

Redis集群详解:Twemproxy Codis 和 Redis Cluster,搭建cluster集群,slots(槽),Jedis连接cluster,SpringBoot整合cluster模式

Redis集群详解:Twemproxy Codis 和 Redis Cluster,搭建cluster集群,slots(槽),Jedis连接cluster,SpringBoot整合cluster模式

qq120631157的博客 1979

Redis之Codis集群的搭建与使用-yellowcong

前面学习了Twitter的Redis集群解决方案Twemproxy,但是这个解决方案存在一个比较大的弊病,无法平滑地扩容/缩容。豌豆荚的Codis项目,可以很好的解决这个问题,我在安装的时候,由于GO语言环境变量的问题,导致安装折腾半天,注意GO语言的环境变量有GOPATH(go...

chengkuiwu3328的博客 164

codis redis集群 搭建

codis redis集群 github开源地址 Codis官方开源地址 Codis官方中文文档 准备工作 下载Codis 最新安装包 codis3.2.2-go1.9.2-linux.tar.gz 下载组件Zookeeper 最新安装包 zookeeper-3.4.9.tar.gz 下载 Java JDK jdk-8u111-linux-x64.tar.gz 1.安装Java ...

个人的工作随笔和日记,主要作为一个记录风向平台 697

redis——codis集群搭建

1.首先进行go环境安装,解压go包到/usr/local/ 将/go/bin/go 复制到/usr/local/bin/下然后执行 vim /etc/profile source /etc/profile 查看go版本 2.安装codis mkdir -p $GOPATH/src/github.com/CodisLabs unzip codis-release3.2.zip mv...

weixin_43350897的博客 297

Redis集群方案之使用豌豆荚Codis搭建(待实践)

Codis的模式类似Twemproxy,不过这东西引入了ZooKeeper做为Redis的注册与发现来实现高可用。 部署时需要额外增加应用的部署,请根据业务需求来衡量。 部署图类似如下: 当然,上面的部署HAProxy也是可以通过集群去实现高可用,切记,单IP这种在高可用上一定要尽量避免! 上面就实现了高可用。但也还是少了Keepalived或者LVS做HAProxy的故...

angou6476的博客 172

Redis集群方案之Codis 3集群搭建

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

太阳守护者Sunner的博客 635
上一篇: Nginx详细配置的备注说明
下一篇: RocketMq学习使用总结
aokunsang
博客等级 码龄17年 4粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值