- 博客(9)
- 问答 (1)
- 收藏
- 关注
原创 Redis五种数据结构的底层实现
一、前言Redis有五种基本数据结构:字符串、hash、set、zset、list。下面解释下载Redis 3.0.6版本中底层是怎样实现他们的。二、动态字符串SDSSDS是“simple dynamic string”的缩写。Redis中所有场景出现的字符串,基本都是有SDS来实现的:所有非数字的key, 如:set msg “hello” 中的key msg字符串数据类型的值,如:set msg “hello” 中的value “hello”非字符串数据类型中的“字符串值”,如:rpush
2020-09-30 18:36:38 1090
原创 Redis性能优化的13条军规
一、前言Redis是基于单线程模型实现的,即Redis使用一个线程来处理所有客户端请求,尽管Redis使用了非阻塞式IO,并且对各种命令都做了优化(大部分命令操作时间复杂度都是O(1)),但由于Redis单线程执行的特点,他对性能的要求更近苛刻。二、Redis操作最佳实践我们通过以下手段来提升Redis的运行速度:1、缩短key/value的存储长度2、使用lazy free(延迟删除)特性3、设置key/value的过期时间4、禁用长耗时的查询命令5、使用slowlog优化耗时命令:怎样使
2020-09-30 12:26:04 558
原创 Kafka副本同步机制
一、Kafka副本同步机制Kafka中topic的每个partition有一个预写式日志文件,每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中,partition中的每个消息都有一个连续的序列号叫做offset,确定他在partition中的唯一位置。kafka每个topic的partition有N个副本,其中N是topic的复制因子,Kafka通过多副本机制实现故障自动转移,当Kafka集群中一个Broker失效情况下,仍可保证服务可用。在Kafk
2020-09-29 15:34:01 3718 2
原创 快手Kafka集群演进之路学习笔记
https://www.infoq.cn/article/Q0o*QzLQiay31MWiOBJH/一、背景2019年快手Kafka集群日消息处理量为数万亿级别,峰值超过1亿/s。在快手,Kafka集群被分成3类:在线集群:作为消息中间件,为不同在线业务之间提供异步的消息通知服务Log集群:业务集群直接将log打给Kafka,并通过Kafka进行传输和收集,由于数据在业务应用层不落地,所以这个过程不能出现由于Kafka问题导致业务受到影响,这对Kafka可用性要求很高;Log集群还为重要的实时计
2020-09-27 21:56:13 519 1
原创 Level DB 学习笔记
一、前言1.1、作者简介Level DB是由google的两位大神级工程师Jeff Dean和Sanjay Ghemawat发起的开源项目。Jeff Dean:Google大规模分布式平台Bigtable和MapReduce的主要设计和实现者Sanjay Gghemawat:Google大规模分布式平台GFS,Bigtable和MapReduce主要设计和实现工程师。1.2、LevelDB简介LevelDB能够处理10亿级别规模的Key-Value持久性存储数据的C++程序库。Bigtable
2020-09-24 20:52:46 252 1
原创 Raft 协议学习笔记
https://zhuanlan.zhihu.com/p/27207160一、前言分布式存储系统通常通过维护多个副本来进行容错,提高系统的可用性。这就必须要解决分布式存储系统的最核心问题:维护多个副本的一致性。
2020-09-23 18:29:35 1475
原创 四层负载与七层负载的区别
一、什么是负载均衡将大量的并发请求转给后端多个节点处理,减少工作响应时间,后端节点处理完再经过负载均衡返回给用户。目前负载均衡大多数用于提高如Web服务器、FTP服务器等Internet服务器程序的可用性和可伸缩性。二、负载均衡的分类1、二层负载均衡(MAC地址)根据OSI模型分的二层负载,一般用虚拟mac地址的方式,外部对虚拟MAC地址请求,负载均衡接受后,分片后端实际的MAC地址响应。2、三层负载均衡(IP)一般采用虚拟IP的方式,外部对虚拟IP地址请求,负载均衡接收后,分配后端实际的IP
2020-09-23 18:11:42 6476 2
原创 Redis Cluster路由请求原理详解
https://cloud.tencent.com/developer/article/1605813Redis Cluster的客户端采用直连Redis的方式。一、MOVED重定向Redis Cluster发送redis指令时,先根据key计算出对应的slot,在根据slot从客户端的slot与node的映射表中找到对应的node,然后发送redis指令:如果指令在这个node上,则处理指令;如果不在这个node上,则redis会返回给客户端MOVED重定向错误,通知客户端重新请求正确的nod
2020-09-17 15:15:45 2030
原创 redis-cluster-operator学习笔记
开源地址:https://github.com/ucloud/redis-cluster-operator一、概述Redis Cluster Operator用于管理基于k8s的Redis Cluster该operator基于Operator framework之上(https://github.com/operator-framework/operator-sdk)每个master node和slave node由一个statefulset管理,每个statefulset创建一个headless
2020-09-02 16:50:23 1914
空空如也
求:Java实现下面的算法,要求尽量高的性能
2015-09-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人