Redis常用基础 主从 哨兵 集群

本文介绍了Redis高性能且线程安全的原因,包括单线程和多路复用IO。阐述了基础数据模型及应用场景,提及使用框架。还讲解了持久化方式RDB和AOF,以及Windows版本Redis的主从、哨兵机制。最后说明了Redis集群分区原理,以及在Windows下搭建集群需安装Ruby等实践要素。
redis高性能且线程安全原因:

单线程(如果想一台机子让redis多线程,可以选择集群方式,每一个redis进程都用一个CPU,充分压榨CPU)
多路复用IO(虽然单线程,但响应快的原因)

基础数据模型以及应用场景:

链接

使用框架:

我觉得好用: csredis .net core使用 基础初始化类

持久化:

RDB:通过子进程进行数据拷贝并且二进制存储

AOF:通过记录操作日志进行持久化

windows版本redis主从:

主从同步原理以及优化方向

# 在从库redis节点配置主库就可以,主库会识别从库,如果有密码需要配置密码
# slaveof <masterip> <masterport>
复制代码
windows版本redis 哨兵

监控redis主库服务,主库宕机会自动从其关联的从库选举master节点

# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,26380,和 26381。

#当前Sentinel服务运行的端口
port 26379  
# 哨兵监听的主服务器 2 是决定选举的最低票数
sentinel monitor mymaster 127.0.0.1 6379 2
# 密码
sentinel auth-pass mymaster 123
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover  
sentinel failover-timeout mymaster 10000  
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
复制代码

主从+哨兵实践.rar

redis集群分区原理:

twemproxy(中间件代理技术):把整个集群空间逻辑计算为16384个哈希槽, 有多少个分区就是把这些槽平均分为多少份,通过hash计算每条数据应该存放在哪个槽区间(意味着redis集群扩容有上限,超过了这个就要用其他处理方法),这个过程对客户端是透明的

  • 我的理解是主从就是单一主库,可以多个从库,集群就是把主从升级为多个主库,其中一个主库宕机就会选其对应从库升主,如果没有对应从库,整个集群就宕了

  • redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式存储

  • 集群示意图

  • 实践要素 windows下搭建:

  1. 装ruby
  2. 替换ruby的redis驱动 选你使用的redis对应的版本最佳,防止不兼容的情况
  3. 启动程序 这段代码就是启动程序,放到其中一个master节点通过这段程序启动
#执行命令时候路径不能存在中文,否则直接报错
#把redis-trib.rb文件搞成utf8格式
redis-trib.rb create --replicas 0 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 
复制代码

集群实践.rar

转载于:https://juejin.im/post/5c909222e51d452a0748c4d3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值