首页
学习
活动
专区
工具
TVP
发布

码洞

专栏作者
176
文章
181876
阅读量
46
订阅数
LevelDB 入门 —— 全面了解 LevelDB 的功能特性
本节我们将全面了解一下 LevelDB 的各种特性。LevelDB 的开发语言是 C++,考虑到会使用 C++ 语言的同学不是很多,在本节我们将使用 Java 语言来描述 LevelDB 的特性。其它语言栈的同学也不必担心,因为不同语言操纵 LevelDB 的接口 API 都是一样的,使用起来大同小异。
老钱
2019-10-24
1.4K0
开源搜索技术的核心引擎 —— Lucene
ES 很了不起,需要使用搜索技术的互联网公司大半都在使用他,但是它的核心引擎却是另一个开源框架 —— Lucene。ES 只是在 Lucene 的基础上穿了一件华丽的外衣,没有 ES 还会有其它产品来包装 Lucene,比如另一个仅次于 ES 的流行搜索系统 Solr,但是如果没有 Lucene,那 ES 可能就不会存在。这就好比 TiDB 也并不是百分百的中国人自己的存储系统,它的内部存储引擎是 RocksDB,来源于 Facebook,TiDB 也只是在它的基础上穿上的一件华丽的外衣。
老钱
2019-09-03
7180
深圳 GIAC 技术大会 Redis 演讲文字稿
观众朋友们,我是来自掌阅的工程师钱文品,今天我带来的是分享主题是:Redis 在海量数据和高并发下的优化实践。Redis 对于从事互联网技术工程师来说并不陌生,几乎所有的大中型企业都在使用 Redis 作为缓存数据库,但是对于绝大多数企业来说只会用到它的最基础的 KV 缓存功能,还有很多 Redis 的高级功能可能都未曾认真实践过。今天在这一个小时的时间我会围绕 Redis,分享在平时的日常业务开发中遇到的 9 个经典案例,希望通过此次分享可以帮助大家更好的将 Redis 的高级特性应用到日常的业务开发中来。
老钱
2019-06-26
4820
布隆过滤器实战【防止缓存击穿】
我们的业务中经常会遇到穿库的问题,通常可以通过缓存解决。 如果数据维度比较多,结果数据集合比较大时,缓存的效果就不明显了。 因此为了解决穿库的问题,我们引入Bloom Filter。
老钱
2019-04-25
1.5K0
一种简单易懂的 MyBatis 分库分表方案
数据库分库分表除了使用中间件来代理请求分发之外,另外一种常见的方法就是在客户端层面来分库分表 —— 通过适当地包装客户端代码使得分库分表的数据库访问操作代码编写起来也很方便。本文的分库分表方案基于 MyBatis 框架,但是又不同于市面上常用的方案,它们一般都是通过编写复杂的 MyBatis 插件来重写 SQL 语句,这样的插件代码会巨复杂无比,可能最终只有插件的原作者自己可以完全吃透相关代码,给项目的维护性带来一定问题。本文的方案非常简单易懂,而且也不失使用上的便捷性。它的设计哲学来源于 Python —— Explicit is better than Implicit,也就是显式优于隐式,它不会将分库分表的过程隐藏起来。
老钱
2019-03-18
1.8K0
MySQL 是怎样运行的:从根儿上理解 MySQL
MySQL凭借着它还不错的性能、还不错的稳定性常年稳居老二宝座,当然最大的优势就是它不要钱,还开源,这让它成为大部分中小型公司,尤其是互联网公司首选的数据库(近年来越来越多的大公司也在尝试将业务转移到这种不要钱的数据库上来)。
老钱
2019-03-18
8.7K0
分布式系统技术难题--异地多活
为了保证系统能够对机房级别的故障进行容错,不会使系统不可用,这就需要在机房级别对系统进行冗余处理。而这就需要在架构上进行良好的设计。来面对多机房场景下的技术挑战。事实上,异地多活最大的挑战在于机房之间的物理距离更远,数据传输的延迟已经不能忽略。在网络普遍延迟的情况下,如何根据业务特性设计高可用的性能达标的分布式系统,将是最大的挑战。
老钱
2019-03-11
1.2K0
LevelDB 代码撸起来!
LevelDB 的大致原理已经讲完了,本节我们要亲自使用 Java 语言第三方库 leveldbjni 来实践一下 LevelDB 的各种特性。这个库使用了 Java Native Interface 计数将 C++ 实现的 LevelDB 包装成了 Java 平台 的 API。其它语言同样也是采用了类似 JNI 的技术来包装的 LevelDB。
老钱
2019-01-23
1.8K0
鸿篇巨制 —— LevelDB 的整体架构
本节信息量很大,我们要从整体上把握 LevelDB 这座大厦的结构。当我们熟悉了整体的结构,接下来就可以各个击破来细致了解它的各种微妙的细节了。
老钱
2019-01-23
9840
既生 Redis 何生 LevelDB ?
了解 Redis 的同学都知道它是一个纯内存的数据库,凭借优秀的并发和易用性打下了互联网项的半壁江山。Redis 之所以高性能是因为它的纯内存访问特性,而这也成了它致命的弱点 —— 内存的成本太高。所以在绝大多数场合,它比较适合用来做缓存,长期不被访问的冷数据被淘汰掉,只有热的数据缓存在内存中,这样就不会浪费太多昂贵的内存空间。
老钱
2019-01-02
1.4K0
一种简单的Failover机制
在应用结构上有这样一个业务场景,机房里部署了多个物理数据库的Proxy无状态节点,业务端通过Proxy节点间接和存储DB交互。Proxy支持了分库分表的特性,管理下层多个物理DB,向上层提供单表抽象。为了支持高可用性,Proxy为多节点部署,业务端可以随机挑选Proxy收发消息。
老钱
2018-08-15
1.7K0
有趣的Python开源库之Hashids
Hashids是一个非常小巧的跨语言的开源库,它用来把数字编码成一个随机字符串。它不同于md5这种算法这种单向映射,Hashids除了编码还会解码。
老钱
2018-08-15
6050
徒手教你使用zookeeper编写服务发现
zookeeper的内部是一个key/value存储引擎,key是以树状的形式构成了一个多级的层次结构,每一个节点既可以存储数据,又可以作为一个目录存放下一级子节点。
老钱
2018-08-15
8320
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档