Redis集群

搭建Redis集群

Redis分片特点:
1.可以实现Redis内存数据的扩容
2.Redis分片本身没有高可用性效果,如果宕机将直接影响用户的使用
Redis哨兵特点:
1.可以实现Redis节点的高可用,但是哨兵本身没有实现高可用机制(最好不要引入第三方)
2.Redis哨兵有主从的结构,实现内存数据的备份,但是没有实现内存扩容的效果
Redis集群特点:
既可以内容扩容又可以高可用性

为什么要搭建集群

通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。
Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿。
由于内存大小的限制,使用一台 Redis 实例显然无法满足需求,这时就需要使用多台 Redis作为缓存数据库。但是如何保证数据存储的一致性呢,这时就需要搭建redis集群.采用合理的机制,保证用户的正常的访问需求.
采用redis集群,可以保证数据分散存储,同时保证数据存储的一致性.并且在内部实现高可用的机制.实现了服务故障的自动迁移.

集群搭建

(主从划分:3台主机3台从机,共6台 端口划分:7000-7005)
1.准备集群文件

mkdir cluster

2.在cluster文件夹中分别创建7000-7005文件

mkdir 7000 7001 7002 7003 7004 7005

3.复制配置文件
将redis目录中的redis.conf文件复制到cluster/7000/ 并以原名保存

cp redis.conf cluster/7000/

修改配置文件

vim redis.conf
1.注释本地绑定IP地址
69行  #bind 127.0.0.1
2.关闭保护模式
88protected-mode no
3.修改端号
92行  port 7000
4.启动后台启动
136行  daemonize yes
5.修改pid文件
158行  pidfile /usr/local/src/redis/cluster/7000/redis.pid
6.修改持久化文件路径
263行  dir /usr/local/src/redis/cluster/7000
7.设定内存优化策略
597行  maxmemory-policy volatitle-lru
8.关闭AOF模式
699行  appendonly no
9.开启集群配置
838行  cluster-enabled yes
10.开启集群配置文件
846行  cluster-config-file nodes.conf
11.修改集群超时时间
852行  cluster-node-timeout 15000

复制修改后的配置文件
将7000文件夹下redis.conf文件分别复制到7001-7005中

[root@localhost cluster]# cp 7000/redis.conf  7001/
[root@localhost cluster]# cp 7000/redis.conf  7002/
[root@localhost cluster]# cp 7000/redis.conf  7003/
[root@localhost cluster]# cp 7000/redis.conf  7004/
[root@localhost cluster]# cp 7000/redis.conf  7005/

批量修改
将7001-7005文件中的7000端口改为对应的端口名称

%s/7000/7001/g

4.通过脚本编辑启动/关闭指令
创建启动脚本

vim start.sh
#!/bin/sh
redis-server 7000/redis.conf &
redis-server 7001/redis.conf &
redis-server 7002/redis.conf &
redis-server 7003/redis.conf &
redis-server 7004/redis.conf &
redis-server 7005/redis.conf &

创建关闭的脚本

vim shutdown.sh
#!/bin/sh
redis-cli -p 7000 shutdown &
redis-cli -p 7001 shutdown &
redis-cli -p 7002 shutdown &
redis-cli -p 7003 shutdown &
redis-cli -p 7004 shutdown &
redis-cli -p 7005 shutdown &

启动redis节点

sh start.sh

检查redis节点启动是否启动正常

ps -ef | grep redis

5.创建redis集群

#5.0版本执行
redis-cli --cluster create --cluster-replicas 1 192.168.126.129:7000 192.168.126.129:7001 192.168.126.129:7002 192.168.126.129:7003 192.168.126.129:7004 192.168.126.129:7005

在这里插入图片描述
在这里插入图片描述

关于集群面试题

问题:Redis集群中最对存储16384个数据???
错误 分区只负责数据的划分 数据的储存由内存决定
crc16(key1)%16384 = 1000
crc16(key2)%16384 = 1000
问题:Redis集群中最多有多少台主机???
16384主机 (一台主机占用一个槽道)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值