redis mysql 集群搭建_NoSQL数据库-redis集群搭建

NoSQL 002 redis 集群

Redis集群

1 部署管理主机

二 查看集群信息

三 检查集群主机信息

四 集群存储数据工作原理

五 访问集群

*****************************

环境准备

1启服务2重置集群信息Mysql57>Redis-cli-h192.168.4.57-p63576357>clusterresetExit3添加主机到集群Mysql51>Redis

/etc/init.d/redis_6379 stop

OB=‘MANAGER"AND25

Vim /etc/redis/6379.conf

70 集群节点node地址 192.168.4.51

93 端口 6351

815 去注释 cluster-enabled yes -打开集群

823 去注释默认 cluster-config file

829 去注释修改 cluster-node-timeout 5000

501 注释掉 requirepass foobared

ile829去注释修改cluster-node-timeout5000501注释掉requirepassfoobaredRm-rf/var/lib/redis/6379/*Vim+43/etc/in

Rm -rf /var/lib/redis/6379/*

client 可以访问任何一台redis服务器[root@client~]#redis-cli-c-h192.168.4.51-p6351-c集群模式192.168.4.51:6351>setb

Vim +43 /etc/init.d/redis_6379

Ip

Port

-h 192.168.4.51 -p 6351

info192.168.4.52:6352192.168.4.52:6352(b1f8c717…)->0keys|4096slots|1slaves.192.168.4.53:6353(37f6

/etc/init.d/redis_6379 start

c)分离表和索引总是将你的表和索引建立在不同的表空间内(TABLESPACES).决不要将不属于ORACLE内部系统的对象存放到SYSTEM表空间里.同时,确保数据表空间和索引表空间置于不同的硬盘上(

Redis-cli -h192.168.4.51 -p 6351

Keys *

Exit

查看集群信息三 检查集群主机信息四 集群存储数据工作原理五 访问集群*****************************环境准备/etc/init.d/redis_6379stopVim/etc

创建集群

集群存储数据工作原理

clusterinfo查看集群信息Clusternodes 查看集群节点信息***************************************四集群存储数据工作原理变量名 和 crc16算

Rdis 服务器: 6台

管理主机: 1台 主机51

客户端: 1台  主机50 vim /etc/redis/6379.conf

一部署管理主机

任意一台

51主机部署ruby脚本运行环境

创建管理集群脚本

放占用的hash槽 重新分片释放占用的slots -指定移除的slots个数-指定接受的slots主机id-指定移除的slits主机idredis-trib.rbdel-node192.168.4.5

yum -y install rubygems

gem install redis-3.2.1.gem

3)Rpm -qa ruby || yum -y install ruby

4)cp redis-4.0.8/src/redis-trib.rb /root/bin/

5)Mkdir /root/bin          创建命令检索目录

6) Tar -zxvf redis-4.0.8.tar.gz

7) Cd redis-4.0.8/src/

8) Cp redis-trib.rb /root/bin/    创建管理集群脚本

9) Chmod +x /root/bin/redis-trib.rb

ivingtable)将被最先处理)WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的

Redis-trib.rb   help

IN(SELECTDEPT_NOFROMDEPTWHEREDEPT_CAT="A");为了提高效率.改写为:(方法一:高效,左外连接)SELECT….FROMEMPA,DEPTBWHE

三 检查集群主机信息

61slots|1slaves.192.168.4.52:6352(2c3bf8d1…)->0keys|5462slots|1slaves.192.168.4.53:6353(02dd6a76…

创建集群

配置6台

10) 五访问集群redis-trib.rb create --replicas 1 192.168.4.51:6351 192.168.4.52:6352 192.168.4.53:6353 192.168.4.54:6354 192.168.4.55:6355 192.168.4.56:6356

Yes 回车

ve57:redis-trib.rbdel-node192.168.4.51:6351a6ac5a052e2915fedb250b37022db0b2ae790f1d(57的从服务器ID)redis-

[OK] All nodes agree about slots configuration.

当经常查询索引列中的数据时,需要在表上创建索引.索引占用磁盘空间,并且降低添加、删除和更新行的速度.在多数情况下,索引用于数据检索的速度优势大大超过它的不足之处.但是,如果应用程序非常频繁地更新数据或

Check for open slots…

Check slots coverage…

[OK] All 16384 slots covered.

CTDEPTNOFROMDEPTWHERELOC=‘MELB")高效:SELECT*FROMEMP(基础表)WHEREEMPNO>0ANDEXISTS(SELECT‘X"FROM

Create --replicas 1 定义每台主库个数

******************(*************

解决报错

/etc/init.d/redis_6379  stop

Rm -rf /var/lib/redis/6379

/etc/init.d/redis_6379 start

*****************************二 查看集群信息[root@mysql51~]#redis-trib.rbinfo192.168.4.51:6351-bash:redis-t

**五访问集群************************************

二 查看集群信息

[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351

-bash: redis-trib: 未找到命令

.168.4.51:6351(99795aed…)->0keys|4096slots|1slaves.192.168.4.57:6357(594abe2e…)->0keys|4096slo

[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351

192.168.4.51:6351 (fefb4f36…) -> 0 keys | 5461 slots | 1 slaves.

192.168.4.52:6352 (2c3bf8d1…) -> 0 keys | 5462 slots | 1 slaves.

192.168.4.53:6353 (02dd6a76…) -> 0 keys | 5461 slots | 1 slaves.

来获得更好的程序性能.4)sql语句全部大写,特别是列名和表名都大写.因为数据库中的语句执行机制是这样的:sql语句发给oracle服务器语法检查和编译成为内部指令缓存和执行指令.而数据库在对语

三 检查集群主机信息

6351.>redis-trib.rb check 192.168.4.51:6351

192.168.4.51:6351> cluster info 查看集群信息

Cluster nodes  查看集群节点信息

***************************************

ATIONWHEREREGIONREGION!=‘SYDNEY"ANDREGION!=‘PERTH"GROUPBYREGION(注意:HAVING中的条件一般用于对一些集合函数的比较,

集群存储数据工作原理

变量名 和 crc16算法 做hash 算法后得到一个数字,数字和%16384屈余,根据余数的值,找对应的redis 服务器存储数据

ts…Checkslotscoverage…[OK]All16384slotscovered.Create--replicas1定义每台主库个数******************(*********

***************************************五访问集群

在客户端client 可以访问任何一台redis 服务器

[root@client ~]# redis-cli -c -h 192.168.4.51 -p 6351

add-node--slave192.168.4.58:6358192.168.4.51:6351redis-trib.rbinfo192.168.4.52:6352192.168.4.52:6352

-c 集群模式

语句.2)有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就可以去掉外键.(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)3)表中允许适当冗余,譬如,主题

192.168.4.51:6351> set b dc

OK

***********************************

六管理集群

停止master 宕机后对应的slave 会自动被选举为master

原master 启动后,会自动配置为当前master 的 slave

;;h)用TRUNCATE替代DELETEi)尽量多使用COMMITj)用Where子句替换HAVING子句例如:低效:SELECTREGION,AVG(LOG_SIZE)FROMLOCATIONGR

检测集群

在管理主机上

Redis-trib.rb check 192.138.4.53:6353

Redis-trib.rb info 192.168.4.53:6353

故障测试

68.4.51:6351还原成独立数据库服务器/etc/redis/6379.confstopRm-rf/var/lib/redis/6379/*815823829/etc/init.d/redis_

停掉53

之前53的从服务器自动变成master

********************************

七 添加集群master 服务器

39;;f)SELECT子句中避免使用‘*‘g)使用DECODE函数来减少处理时间例如:SELECTCOUNT(*),SUM(SAL)FROMEMPWHEREDEPT_NO=0020ANDENAMEL

添加master 服务器: 57

1 添加master 主机

root@mysql51 utils]# redis-trib.rb add-node 192.168.4.57:6357

192.168.4.51:6351

2重新分片

[root@mysql51 utils]# redis-trib.rb reshard 192.168.4.51:6351

How many slots do you want to move (from 1 to 16384)? 4096

What is the receiving node ID? 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0

Please enter all the source node IDs.

Type ‘all’ to use all the nodes as source nodes for the hash slots.

Type ‘done’ once you entered all the source nodes IDs.

Source node #1:all

192.168.4.51-p6351Keys*Exit创建集群集群存储数据工作原理Rdis服务器: 6台管理主机: 1台 主机51客户端: 1台  主机50 vim/etc/redis/6379.co

3添加slave 服务器

[root@mysql51 utils]# redis-trib.rb add-node --slave 192.168.4.58:6358 192.168.4.51:6351

redis-trib.rb info 192.168.4.52:6352

ster启动后,会自动配置为当前master的 slave检测集群在管理主机上Redis-trib.rbcheck192.138.4.53:6353Redis-trib.rbinfo192.168.4

192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.

192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.

192.168.4.51:6351 (99795aed…) -> 0 keys | 4096 slots | 1 slaves.

192.168.4.57:6357 (594abe2e…) -> 0 keys | 4096 slots | 1 slaves.

lots|1slaves.添加回去  57 1启服务2重置集群信息Mysql57>Redis-cli-h192.168.4.57-p63576357>clusterresetExit3添加

*平均分片

Redis-trib.rb Rebalance 192.168.4.51:6351

***************************************

WHERESAL>50000ANDJOB=‘MANAGER"AND25

1 移除slave57 :

3去注释默认cluster-configfile829去注释修改cluster-node-timeout5000501注释掉requirepassfoobaredRm-rf/var/lib/redi

redis-trib.rb del-node 192.168.4.51:6351 a6ac5a052e2915fedb250b37022db0b2ae790f1d(57 的从服务器ID)

************五访问集群在客户端client 可以访问任何一台redis服务器[root@client~]#redis-cli-c-h192.168.4.51-p6351-c集群模式192.

redis-trib.rb check 192.168.4.52:6352

rd192.168.4.57:6357-释放占用的hash槽 重新分片释放占用的slots -指定移除的slots个数-指定接受的slots主机id-指定移除的slits主机idredis-trib.

.52:6352redis-trib.rbinfo192.168.4.52:6352192.168.4.52:6352(b1f8c717…)->0keys|4096slots|1slaves.1

vim /etc/redis/6379.conf

作b)用UNION替换OR(适用于索引列)c)分离表和索引总是将你的表和索引建立在不同的表空间内(TABLESPACES).决不要将不属于ORACLE内部系统的对象存放到SYSTEM表空间里.同时,确

2 移除master

redis-trib.rb reshard 192.168.4.57:6357 -释放占用的hash槽 重新分片

释放占用的slots

-指定移除的slots 个数

-指定接受的slots 主机id

-指定移除的slits 主机id

edis集群Redis集群1部署管理主机二 查看集群信息三 检查集群主机信息四 集群存储数据工作原理五 访问集群*****************************环境准备/etc/init.d

redis-trib.rb del-node 192.168.4.57:6357 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0  -移除主机

51192.168.4.51:6351> clusterinfo查看集群信息Clusternodes 查看集群节点信息***************************************四集

redis-trib.rb check 192.168.4.52:6352

rd192.168.4.57:6357-释放占用的hash槽 重新分片释放占用的slots -指定移除的slots个数-指定接受的slots主机id-指定移除的slits主机idredis-trib.

.52:6352redis-trib.rbinfo192.168.4.52:6352192.168.4.52:6352(b1f8c717…)->0keys|4096slots|1slaves.1

redis-trib.rb info 192.168.4.52:6352

192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.

192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.

192.168.4.51:6351 (99795aed…) -> 0 keys | 8192 slots | 1 slaves.

添加回去  57

1启服务

2重置集群信息

Mysql 57 > Redis-cli -h 192.168.4.57 -p 6357

6357 > cluster reset

Exit

3 添加主机到集群

Mysql51 >Redis-trib.rb add-node 192.168.4.57:6357 192.168.4.51:6351

4 查看集群信息

Redis-trib.rb info 192.168.4.51:6351

名,FROM子句中写在最后的表(基础表drivingtable)将被最先处理)WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHE

还原成独立数据库服务器

ROMEMPWHEREDEPT_NONOTIN(SELECTDEPT_NOFROMDEPTWHEREDEPT_CAT="A");为了提高效率.改写为:(方法一:高效,左外连接)SELE

/etc/redis/6379.conf stop

Rm -rf /var/lib/redis/6379/*

815

823

829

/etc/init.d/redis_6379 start

fb4f36…)->0keys|5461slots|1slaves.192.168.4.52:6352(2c3bf8d1…)->0keys|5462slots|1slaves.192.16

Redis-cli -h192.168.4.57 -p 6357

6357 > cluster info

This instance Cluster support disabled

/etc/init.d/redis_6379 stop

181 vim /etc/redis/6379.conf

182 /etc/init.d/redis_6379 start

184 ss -ntulp |grep redis-server

***************1移除slave57:redis-trib.rbdel-node192.168.4.51:6351a6ac5a052e2915fedb250b37022db0b2ae79

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值