博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈一谈 redis 集群
阅读量:6432 次
发布时间:2019-06-23

本文共 1644 字,大约阅读时间需要 5 分钟。

hot3.png

前言:

        好几天没写东西了,今天写一些吧。随便聊一聊redis的集群.

       redis 由于性能卓越,在众多互联网企业广泛应用。Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB、200GB的规模,新浪微博就曾经用Redis存储了超过1TB的数据,但是单实例模式限制了Redis没法满足业务的需求. 为了达到新的业务要求,开始集群吧。

       一: ruby方式

       首先说一下 ruby集群的方式,ruby传说是made in Japan:

       思路应该是这样首先下载一个ruby,然后安装

        235317_A3dY_3104573.png

        安装时 add ruby executables to your path 要选中, 我把第三个也选中,动态链接ruby文件.

        接下来 可以用ruby 命令工具打开命令行模式,在命令行下 gem source -l  可以看到获取资源的域名,如

        000254_8TWK_3104573.png

        默认的是https://rubygems.org/,这里通过

删除被墙的源:gem sources -r ,添加gem sources -a http://rubygems.org/

也有人用这个源.

       现在安装redis工具,由于这里还是用国外源,先翻墙,然后命令行下:

  >gem install redis -v 3.0.1

   001059_8gjv_3104573.png

   接下来E:\Ruby22\lib\ruby\gems\2.2.0\gems\redis-3.0.1\lib\redis\redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002

1 即自动分配 Slave , 如果想手动指定 Slave  , 将该值变为 0 即可

另外集群的 redis.conf 要设置

port 7001

cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
appendonly yes

port 此节点的端口 ,cluster-config-file 生成的note文件 需要每个不同定义.

启动 master,slave ,后查看集成效果。

这种集成方式我在 gem更新 redis时成功更新,但是找不到redis-trib.rb这个文件,下了3个版本的redis还是没有,沮丧而未成。

       二: 哨兵方式

       这个方式不需要其它外部资源支持,在redis 根目录下建2个逻辑redis server .

    002719_LkTU_3104573.png

    7001 7002 是逻辑server 目录, 7001为master ,7002为slave

    以7002为例进行讲解:

   建2个文件 002919_1vb3_3104573.png

  sentinel.conf 为哨兵文件,加入

port 26379

sentinel monitor devmaster 127.0.0.1 7001 2

sentinel down-after-milliseconds devmaster 3000

sentinel auth-pass devmaster test

protected-mode no

其中 port 为synchronized 端口 ,sentinel monitor devmaster  定义向哪个master同步.

redis.conf 加入 

slaveof 127.0.0.1 7001

配置OK,然后命令行里启动server.

003524_XFWC_3104573.png

这部分可以做成批处理.

开始测试:

003712_8chb_3104573.png

server7002 成功读取到server7001数据。

看一下server7001 和 server7002的log

003859_UGWc_3104573.png

log in server7001

003936_kQ0H_3104573.png

log in server 7002

 

后记: redis同步的方式还有很多,有的用C语言同步的,还有用Java程序同步的,在使用时要根据场景选择适合的同步机制。

 

 

转载于:https://my.oschina.net/u/3104573/blog/819603

你可能感兴趣的文章
关于如何编写linux设备驱动
查看>>
DNS服务
查看>>
九州云开放“边缘云”能力 助力中国联通延展业务边界
查看>>
Linux进程状态(ps stat)之R、S、D、T、Z、X
查看>>
ME3750和普通3750的区别
查看>>
H3C交换系列之Super VLAN
查看>>
项目采购管理
查看>>
linux系统使用tomcat服务器部署web项目
查看>>
虚拟文件系统相关结构描述【续】
查看>>
我的友情链接
查看>>
思科通配符(Cisco Wildcard Mask)
查看>>
PHP cURL快速入门
查看>>
在errpt中报E87EF1BE的解决方法(转载)
查看>>
aix chfs及mklvcopy报错的解决方法
查看>>
取消新增的constraints
查看>>
OPTIMIZE TABLE
查看>>
flask框架+pygal+sqlit3搭建图形化业务数据分析平台
查看>>
shell实战训练营Day20
查看>>
jQuery 之 TAB切换菜单
查看>>
mysql 数据库集群搭建:(二)3台CentOS-7安装Percona-XtraDB-Cluster-57集群
查看>>