设为首页 收藏本站
查看: 1217|回复: 0

[经验分享] redis3.0集群说明与搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-21 10:23:54 | 显示全部楼层 |阅读模式

Redis3.0集群说明:

1.  Redis集群提供一种运行Redis的方式,数据被自动的分片到多个Redis节点。

2. 集群不支持处理多个键的命令,因为这需要在Redis节点间移动数据,使得                 Redis集群不能提供像Redis单点那样的性能,在高负载下会表现得不可预知。

3.  集群可在多个节点间自动拆分数据集。

当部分节点正在经历失败或者不能与集群其他节点通信时可继续运转

4 Redis集群不保证数据强一致性。

  redis-server 集群以哈希槽的方式存放数据(目前最大是 16384 个哈希槽)

5.  redis集群  通过failover选举方式进行容错,保证一台Server挂了还能跑,这个选举是全部集群超 过半数以上的Master发现其他Master挂了后,会将其他对应的Slave节点升级成Master.

6.  cluster环境下redis的slave不接受任何读写操作

7.  从节点挂掉或失效,不需要进行failover,redis cluster能正常提供服务;主节点挂掉或失效需要进行failover。另外,redis cluster还支持manual failover,即人工进行failover,产从节点变为主节点,即使主节点还活着。下面将介绍这两种类型的failover。



搭建配置:

双机六节点


  • redis节点部署

http://download.redis.io/releases/redis-3.0.3.tar.gz

依赖包

yum -y install ruby ruby-devel rubygems rpm-build

gem install redis



安装:

S1和S2

tar -zxvf redis-3.0.3.tar.gz

cd redis

make MALLOC=libc  && make install


规划节点:

S1,S2分别运行3个节点

s1:

mkdir /usr/local/redis_cluster

cd /usr/local/redis_cluster

mkdir 7000 7001 7002

s2 :

mkdir /usr/local/redis_cluster

cd /usr/local/redis_cluster

mkdir 7003 7005 7004


创建配置节点:

cp /usr/local/redis-3.0.3/redis.conf  /usr/local/redis_cluster/7000

vim  /usr/local/redis_cluster/7000

daemonize    yes                          pidfile  /var/run/redis_7000.pid    pidfile文件对应端口号port  7000                       端口7000cluster-enabled  yes                    开启集群功能  cluster-config-file  nodes.conf      指定集群的配置文件cluster-node-timeout   5000       节点请求超时  appendonly   yes                  开启aof日志  


cp  /usr/local/redis_cluster/7000/redis.conf  /usr/local/redis_cluster/700X

分别复制redis.conf配置文件到各节点存放的目录 并修改端口号和pid文件


以配置文件方式启动各节点:

cd  /usr/local/redis_cluster/700X/

redis-server  redis.conf

配置无误启动后在各节点目录中会生成以下文件

spacer.jpg

查看一下redis监听的端口号,确定各节点正常运行

netstat -tnlp | grep redis

我们除了看到 配置文件中设置的端口700X   还有700X+10000  (1700X), 前者是客户端访问的, 后者是集群内部节点之间访问的.



2.Redis3.0集群创建

创建集群之前先配置iptables开放redis端口:

Iptales配置(测试环境直接关闭)

iptables -A INPUT -p tcp --dport 700X -j ACCEPT

iptables -A INPUT -p tcp --dport 1700X -j ACCEPT

创建:

s1上:

cd /usr/local/redis/src/

./redis-trib.rb    (查看集群使用的的语法)

/usr/local/redis/src/redis-trib.rb  create  --replicas  1   127.0.0.1:7000  127.0.0.1:7001  192.168.183.131:7005  192.168.183.131:7006  192.168.1.199:7007  127.0.0.1:7002

# --replicas  1  表示 自动为每一个master节点分配一个slave节点    上面有6个节点,redis会按照一定规则生成 3个master(主)3个slave(从),--replicas不同时只从数量也不同。


spacer.jpg

打开上s2终端:

cd /usr/local/redis_cluster/7005-7

redis-cli -c -p 7005-7

cluster meet 192.168.183.129 7000

spacer.jpg

查看集群主从节点分配

/usr/local/redis/src/redis-trib.rb check 127.0.0.1:700X

spacer.jpg

M: 0188178f958b0598d95c7bf852aa97e79f89507b 192.168.183.129:7002

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

S: fbc29b05d2c0ec1a02644fddbf65d3e499ad66ec 192.168.183.131:7003

   slots: (0 slots) slave

   replicates 0188178f958b0598d95c7bf852aa97e79f89507b

M: c775049713a9d950bb80972ff760aa9add598728 192.168.183.129:7001

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.


  • 集群数据同步测试;

在s1上:

[iyunv@localhost ~]# redis-cli -c -p 7000      

127.0.0.1:7000> set gozap yunweibu

-> Redirected to slot [10865] located at 127.0.0.1:7002

OK

127.0.0.1:7002> get gozap

"yunweibu"

127.0.0.1:7002>

在s2上:

[iyunv@localhost 7003]# redis-cli -c -p 7005  当使用参数 -c 登录后,会自动取到其它节点中的数据        

127.0.0.1:7005> get gozap

-> Redirected to slot [10865] located at 192.168.183.129:7002

"yunweibu"

192.168.183.129:7002>







官方说明:Redis 3.0版本相对于2.8版本带来的主要新特性包括:

  • 引入了全新的"embedded string" 对象编码方式,从而实现了更少的缓存丢失和在特定的工作负载下速度的大幅提升;
  • AOF重写过程中的 "last write" 操作降低了AOF child -> parent数据传输的延迟
  • 大幅提升LRU算法的性能以用于值的失效;
  • WAIT命令能够阻塞传输到指定数量从节点的写操作;
  • 实现了对MIGRATE连接缓存的支持,从而大幅提升键值迁移的性能;
  • 为MIGARTE新增了参数:COPY和REPLACE;
  • CLIENT PAUSE命令实现了在指定时间内停止处理客户端请求;
  • 提高了BITCOUNTINCR操作的性能;
  • CONFIG SET能够接受不同单位的内存值,如CONFIG SET maxmemory 1gb;
  • 调整Redis日志格式。





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102072-1-1.html 上篇帖子: redis 启动时 Warning 警告解决及说明 下篇帖子: redis网络超时问题分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表