没有合适的资源?快使用搜索试试~ 我知道了~
首页Redis官方Cluster搭建配置步骤详解
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。 Redis集群并 不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令. 本文,是我自己写的Redis Cluster集群搭建和配置详细步骤,包含了常用的Redis配置文件,和节点的管理等,以供大家参考.
资源详情
资源评论
资源推荐
Redis 集群是个提供在多个Redis间节点间共享数据的程序集。
Redis集群并持处多个keys的命令,因为这需要在同的节点间移动数据,从
达到像Redis那样的性能,在负载的情况下可能会导致可预的错误.
Redis 集群通过分区来提供定程度的可性,在实际环境中当某个节点宕机或者
可达的情况下继续处命令. Redis 集群的优势:
动分割数据到同的节点上。
整个集群的部分节点失败或者可达的情况下能够继续处命令。
Redis 集群的数据分
Redis 集群没有使致性hash, 是引 哈希槽的概念.
Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置
哪个槽.集群的每个节点负责部分hash槽,举个,如当前集群有3个节点,那
么:
节点 A 包含 0 到 5460号哈希槽.
节点 B 包含5461 到 10922 号哈希槽.
节点 C 包含10923 到 16384号哈希槽.
这种结构很容添加或者删除节点. 如如果我想新添加个节点D, 我需要从节点
A, B, C中得部分槽到D上. 如果我像移除节点A,需要将A中得槽移到B和C节点上,然
后将没有任何槽的A节点从集群中移除即可. 由于从个节点将哈希槽移动到另
个节点并会停服务,所以论添加删除或者改变某个节点的哈希槽的数都
会造成集群可的状态.
Redis 集群的主从复制模型
为使在部分节点失败或者部分节点法通信的情况下集群仍然可,所以集
群使主从复制模型,每个节点都会有N-1个复制品.
在我们中具有A,B,C三个节点的集群,在没有复制模型的情况下,如果节点B
失败,那么整个集群就会以为缺少5501-11000这个范围的槽可.
然如果在集群创建的时候(或者过段时间)我们为每个节点添加个从节点
A1,B1,C1,那么整个集群有三个master节点和三个slave节点组成,这样在节
点B失败后,集群会选举B1为新的主节点继续服务,整个集群会因为槽找
到可
过当B和B1 都失败后,集群是可的.
Redis 致性保证
Redis 并能保证数据的强致性. 这意味这在实际中集群在特定的条件下可能会
丢失写操作.
第个原因是因为集群是异步复制. 写操作过程:
客户端向主节点B写条命令.
主节点B向客户端回复命令状态.
主节点将写操作复制给他得从节点 B1, B2 和 B3.
主节点对命令的复制作发在返回命令回复之后, 因为如果每次处命令请求
都需要等待复制操作完成的话, 那么主节点处命令请求的速度将极地降低
—— 我们必须在性能和致性之间做出权衡。 注意:Redis 集群可能会在将来提
供同步写的法。 Redis 集群另外种可能会丢失命令的情况是集群出现络
分区, 并且个客户端与少包括个主节点在内的少数实被孤。
举个 假设集群包含 A 、 B 、 C 、 A1 、 B1 、 C1 六个节点, 其中 A 、B 、
C 为主节点, A1 、B1 、C1 为A,B,C的从节点, 还有个客户端 Z1 假设集群
中发络分区,那么集群可能会分为两,部分的包含节点 A 、C 、A1
、B1 和 C1 ,部分的则包含节点 B 和客户端 Z1 .
Z1仍然能够向主节点B中写, 如果络分区发时间较短,那么集群将会继续正常
运作,如果分区的时间够让部分的将B1选举为新的master,那么Z1写B
中得数据丢失.
注意, 在络分裂出现期间, 客户端 Z1 可以向主节点 B 发送写命令的最时间
是有限制的, 这时间限制称为节点超时时间(node timeout), 是 Redis 集群
的个重要的配置选项:
搭建并使Redi s集群
搭建集群的第件事情我们需要些运在 集群模式的Redis实. 这意味这集群
并是由些普通的Redis实组成的,集群模式需要通过配置启,开启集群模
式后的Redis实可以使集群特有的命令和特性.
redis.conf配置如下:
# Redis configuration
daemonize yes
pidfile "/var/run/redis_6379.pid"
port 6379
tcp-backlog 511
timeout 1800
tcp-keepalive 0
loglevel notice
logfile "/data/redis/log/redis_6379.log"
databases 16
save ""
#save 900 1
#save 300 10
#save 60 10000
redis-templ
e.conf
2.33KB
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/data/redis/6379"
# slaveof <masterip> <masterport>
# masterauth <master-password>
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
# repl-ping-slave-period 10
# repl-timeout 60
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
slave-priority 100
# min-slaves-to-write 3
# min-slaves-max-lag 10
# requirepass foobared
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS "howmanykeys"
maxclients 10000
maxmemory 3145728000
maxmemory-policy volatile-lru
# maxmemory-samples 5
############################## APPEND ONLY MODE
###############################
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 80
auto-aof-rewrite-min-size 128mb
aof-load-truncated yes
################################ LUA SCRIPTING
###############################
lua-time-limit 5000
剩余10页未读,继续阅读
achongge1
- 粉丝: 2
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0