大家好,我是IT修真院上海分院第6期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务1中,jdbc数据库连接池的原理及分析。
redis简介:
redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库,是目前最流行的NoSQL数据库。众多语言都支持Redis,因为Redis交换数据快,所以在服务器中常用来存储一些需要频繁调取的数据,这样可以大大节省系统直接读取磁盘来获得数据的I/O开销,更重要的是可以极大提升速度。
为什么使用redis集群?
1、大型网站应用,热点数据量往往巨大,单台redis实例不能满足需求。
2、单台服务主机的内存资源往往是有限制的,通过横向可伸缩扩展,使用多台主机提供服务,能够获得更好的效果。
3、单redis服务一旦宕机、对系统服务会造成性能巨大损失。为了在大流量访问下提供稳定的业务,集群化是存储的必然形态。
关于redis的集群化方案,目前有三种:
1、Twitter开发的twemproxy。
2、豌豆荚开发的codis。
3、redis官方的redis-cluster。
twemproxy架构简单,就是用proxy对后端redis server进行代理,但是由于代理层的消耗性能很低,而且通常涉及多个key的操作都是不支持的,而且本身不支持动态扩容和透明的数据迁移,而且也失去维护,Twitter内部已经不使用了。
使用hash slot方式,将16348个hash slot覆盖到所有节点上,对于存储的每个key值,使用CRC16(KEY)&16348=slot,得到他对应的hash slot,并在访问key时就去找他的hash slot在哪一个节点上,然后由当前访问节点从实际被分配了这个hash slot的节点去取数据。
节点之间使用轻量协议通信,减少带宽占用,性能很高,自动实现负载均衡与高可用。
codis使用的也是proxy思路,但是做的比较好,是这两种之间的一个中间级,而且支持redis命令是最多的,有图形化GUI管理和监控工具,运维友好。
redis-cluste集群原理:
1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。
2、节点的fail是通过集群中超过半数的节点检测失效时才生效。
3、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
4、redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value。
Redis集群中内置了16384个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
Redis Cluster主从模式
redis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点,主节点提供数据存取,从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。
这样就算主节点挂掉,redis集群也会选择从节点作为新的主节点,保证能够正常提供服务。
redis-cluster投票:容错
1、投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超时(cluster-node-timeout),认为当前master节点挂掉。
2、什么时候整个集群不可用(cluster_state:fail)?2、什么时候整个集群不可用(cluster_state:fail)?
如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完整时进入fail状态。
可以修改cluster-require-full-coverage参数为true,打开集群兼容部分失败。
如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态。
redis集群搭建:
1、下载安装redis
2、ruby环境
3、配置多个redis节点
4、创建集群
若想使用redis自带的脚本搭建集群,ruby版本必须在2.2以上
https://www.cnblogs.com/yingchen/p/6763524.html
PTT连接:PTT
视频连接:视频
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~
直接点击此连接:http://www.jnshu.com/login/1/10985551