Bob Liu
码龄12年
关注
提问 私信
  • 博客:1,381,373
    社区:564
    1,381,937
    总访问量
  • 172
    原创
  • 576,113
    排名
  • 143
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2013-03-30
博客简介:

Bob Liu的程序人生

博客描述:
万物之始,大道至简,衍化至繁
查看详细资料
个人成就
  • 获得229次点赞
  • 内容获得112次评论
  • 获得662次收藏
  • 代码片获得337次分享
创作历程
  • 1篇
    2020年
  • 14篇
    2019年
  • 26篇
    2018年
  • 77篇
    2017年
  • 6篇
    2016年
  • 47篇
    2015年
  • 19篇
    2014年
成就勋章
TA的专栏
  • Java算法面试题
    9篇
  • Python入门与提高
    13篇
  • Java多线程面试题
    4篇
  • LevelDB研究
  • Linux性能调优
  • LevelDB教程及源码分析
  • 设计模式
    1篇
  • Python
    35篇
  • Java
    21篇
  • Scala
    1篇
  • C/C++
    7篇
  • Hadoop
    15篇
  • Zookeeper
    4篇
  • Linux内核
    7篇
  • Linux应用
    19篇
  • 虚拟化技术
    11篇
  • Java Web
    18篇
  • MySQL
    6篇
  • Maven
    11篇
  • Eclipse
    5篇
  • 机器学习与数据挖掘
    11篇
  • 算法与数据结构
    9篇
  • 日志中间件
    1篇
  • 金融量化分析
    7篇
  • 研发与产品管理
    1篇
  • 人生杂谈
    3篇
  • SCM
  • 编译工具
    1篇
  • NoSQL
    8篇
  • 网络技术
    2篇
  • DevOps
    7篇
  • 开发工具
    1篇
  • 消息中间件
    1篇
  • 高性能Linux
    2篇
兴趣领域 设置
  • 大数据
    hadoophivespark
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Redis深度解析系列文章

在研究Redis过程,收集到的比较好的文章,整理到这里,方便后续查阅内存模型Redis内存模型技术面试面试中关于Redis的问题看这篇就够了
原创
发布博客 2020.07.08 ·
671 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用c++filt工具demangle C++符号

demangle符号名在调试C++程序时, 经常会遇到未demangle的C++符号名, 不了解mangle的规则时, 并不太容易确定具体是哪个API. 比如, 使用objdump将boost日志动态库的符号表导出, 你是否能够很快辨别出对应的实际的函数名称.[jinguang1@centos7-dev ~]$ objdump -T /usr/lib/libboost_log.so/usr...
原创
发布博客 2019.10.25 ·
3647 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Faiss源码解析 - Index抽象类介绍(一)

本系列文章基于Faiss 1.5.3版本的代码进行分析。相似性搜索介绍Faiss是Facebook AI团队开源的针对聚类和相似性搜索库,为稠密向量提供高效相似度搜索和聚类,是目前比较成熟的近似近邻搜索库。以图片搜索为例,所谓相似度搜索,就是在给定的图片中,寻找出指定的图片最像的K张图片,本质上为KNN(K近邻)问题。为了解决KNN问题,在工程上需要对现有图片库的特征向量进行存储。当用户指...
原创
发布博客 2019.07.11 ·
4471 阅读 ·
2 点赞 ·
3 评论 ·
7 收藏

高性能Linux: SSD分区对齐问题

分区对齐分区对齐意味着分区与数据存储设备(例如硬盘,固态驱动器(SSD)或RAID卷)的合理的边界对齐。正确的分区对齐可确保数据访问期间的理想性能。不正确的分区对齐将导致性能降低,尤其是SSD(内部页面大小为4,096或8,192字节),具有4,096字节扇区和RAID卷的硬盘。分区历史过去,第一个分区始终在LBA(Logical Block Address)地址63处开始,该地址对应于第6...
原创
发布博客 2019.07.11 ·
4302 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Redis源码分析:字典实现(二)

本文分析的是Redis的版本为4.0.11。接口实现本文继续分析字典的接口实现。添加在分析键值对添加接口实现前,先来分析一下_dictKeyIndex()函数实现。该函数根据提供key、哈希值来获取哈希表的插入位置。如果该key在哈希表中已存在,可以通过existing参数返回dictEntry地址,并将返回值设置为-1,表示key已存在。如果dict正在进行重新哈希的过程,需要在新旧两个...
原创
发布博客 2019.07.08 ·
358 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Redis源码分析:字典实现(-)

本文分析的是Redis的版本为4.0.11。字典(dictionary)键值数据库(key-value store)是字典的数据结构,键(key)和值(value)进行关联,形成键值对,所有数据库的操作都是通过主键(primary key)来实现的。除了用作表示数据库外,字典还是Redis底层哈希键的底层实现。字典结构定义字典结构定义位于dict.h文件中。先来看一下字典结构的定义:/*...
原创
发布博客 2019.07.03 ·
413 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

高性能Linux:TCP/IP内核参数调优之Linux TCP内核参数解析

内核参数
原创
发布博客 2019.04.28 ·
3611 阅读 ·
2 点赞 ·
1 评论 ·
18 收藏

Kubernetes: Python Client快速入门

简介本文总结了Kubernetes的Python Client的安装及使用示例,以帮助读者能够快速了解Pyhont Client的接口使用。安装如果是安装的Anaconda的环境,可以使用下列命令来进行安装Client库:conda install -c conda-forge kubernetes 使用PyPi,直接运行下列命令:pip install kubernetes使用...
原创
发布博客 2019.04.13 ·
6572 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

kubernetes: 如何自动生成join master的命令

Token有效期通过kubeadm init初始化时,会提供加入master节点所需的命令,包含Token和ca证书的sha256的散列值,但这个Token值仅有24小时的有效期。[root@host10-30-21-63 cluster-setup]# kubeadm token listTOKEN TTL EXPIRES ...
原创
发布博客 2019.04.10 ·
5606 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

Kubernetes:etcd堆叠的HA方案下如何重置master节点

etcd堆叠的HA方案官网给出的etcd的HA方案如下:参考资料https://kubernetes.io/docs/setup/independent/ha-topology/https://access.redhat.com/documentation/en-us/openshift_container_platform/3.10/html/cluster_administrati...
原创
发布博客 2019.04.10 ·
2009 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

使用kubectl explain来了解可能的API对象字段

了解API对象属性的方法在准备manifest文件时,可以参考kubernetes官网的http://kubernetes.io/docs/api参考文档,来了解API对象支持的属性,也可以使用kubectl explain命令。很多时候,使用后者更便捷。如何使用kubectl explain命令从零开始以编写POD的manifest文件,可以使用该命令先了解pod的相关规格:[jingu...
原创
发布博客 2019.03.22 ·
6915 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

高性能Linux:TCP/IP内核参数调优之TCP窗口扩大因子(TCP Window Scaling)选项(理论篇)

TCP报文头部窗口字段介绍在TCP报文头部,有一个16比特的窗口字段,用来表示接受方的缓冲区大小,发送方可以根据这个值的大小来调节发送的数据量,从而起到流控的目的。T C P的流量控制由连接的每一端通过声明的窗口大小来提 供 。窗口大小为字节数 ,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16 bit字段,因而窗口大小最大为65535字节。...
原创
发布博客 2019.03.04 ·
11932 阅读 ·
1 点赞 ·
0 评论 ·
21 收藏

librdkafka: 如何设置Kafka消费者订阅消息的起始偏移位置

缺省配置默认情况下,Kafka消费者从最后一次提交的偏移量位置(offset)开始消费消息,如果Topic+Partition和Group之前没有提交过偏移量,它订阅消息开始位置取决于Topic的配置属性auto.offset.reset的设置。默认为最新(latest),也就是在分区末尾开始消耗(仅消费新消息)。相关配置可以参考官方文档:https://kafka.apache.org/doc...
原创
发布博客 2019.02.28 ·
11646 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

Zookeeper C客户端库编译

简介wget https://github.com/apache/zookeeper/archive/release-3.4.13.tar.gzyum install cppunit-develant compile_juteant clean jar[root@centos7-dev c]# makemake all-ammake[1]: Entering directory `...
原创
发布博客 2019.02.13 ·
6869 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

如何在VirtualBox客户机使用符号连接

问题描述今天在VirtualBox CentOS客户机上编译kafka C客户端库时,发现下面的问题:rm -f "librdkafka.so" && ln -s "librdkafka.so.1" "librdkafka.so"ln: failed to create symbolic link ‘librdkafka.so’: Read-only file system...
原创
发布博客 2019.01.21 ·
392 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

LevelDB专栏文章索引

简介本文为作者关于LevelDB的系列文章做的索引,方便阅读。LevelDB C++教程1. LevelDB: Linux下编译与安装2. LevelDB: Linux系统中安装snappy3. LevelDB: 如何打开和关闭数据库LevelDB源码分析1. LevelDB源码分析:理解Slice实现 - 高效的LevelDB参数对象...
原创
发布博客 2018.12.15 ·
540 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LevelDB源码分析:理解Slice实现 - 高效的LevelDB参数对象

简介Slice在LevelDB中作为高效的参数对象而设计,你可以使用任何数据类型来创建leveldb::Slice对象,而且这些对象在LevelDB的很多接口中作为参数来进行传递。本文将介绍LevelDB重要的参数对象Slice的实现,涉及的LevelDB的版本为1.20。Slice实现Slice类的实现在include/leveldb/slice.h中:class Slice { pu...
原创
发布博客 2018.12.15 ·
1670 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

LevelDB C++教程: 如何打开和关闭数据库

简介leveldb提供持久键值存储功能。键和值是任意字节数组。根据用户指定的比较函数,在键值存储区内对键进行排序。本文将介绍leveldb的打开和关闭数据的基本操作,为后面的键值存储操作做准备。代码示例下面的代码功能实现了完整的打开和关闭数据库的功能,下面会对代码来进行逐一讲解:#include <iostream>#include <cassert>#inc...
原创
发布博客 2018.12.13 ·
1938 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

LevelDB C++教程: Linux系统中安装snappy

snappy简介Snappy(以前称Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源。它的目标并非最大压缩率或与其他压缩程序库的兼容性,而是非常高的速度和合理的压缩率。使用一个运行在64位模式下的酷睿i7处理器的单个核心,压缩速度250 MB/s,解压速度500 MB/s。压缩率比gzip低20-100%。Snappy广泛应用在Goog...
原创
发布博客 2018.12.10 ·
1984 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

LevelDB C++教程: Linux下编译与安装

简介leveldb是由google开发的键值存储库,它提供了由字符串键到字符串值的映射,本文介绍如何在Linux下编译安装leveldb。源码下载使用git可以下载最新的leveldb的源码,目前最新的发布版本为v1.20。git clone https://github.com/google/leveldb.git编译安装leveldb支持cmake,可以通过下列的命令非常容易的进...
原创
发布博客 2018.12.10 ·
1494 阅读 ·
2 点赞 ·
3 评论 ·
1 收藏
加载更多