Redis 为什么要自己实现用SDS实现一个字符串
Redis是一种KV的存储结构,他的key是字符串类型,值也支持字符串,所以字符串是redis中最常见的一个类型了。Redis自己本身是通过C语言实现的,但是他并没有直接使用C语言中的字符数组的方式来实现字符串,而是自己实现了一个SDS,即...
Redis是一种KV的存储结构,他的key是字符串类型,值也支持字符串,所以字符串是redis中最常见的一个类型了。Redis自己本身是通过C语言实现的,但是他并没有直接使用C语言中的字符数组的方式来实现字符串,而是自己实现了一个SDS,即...
近日,Google、微软、facebook 和亚马逊终于忍不了了,联合呼吁废除闰秒,什么是闰秒呢?闰秒到底做错了什么?为什么各大互联网公司想要废除他呢? 什么是闰秒 闰秒概念是 1972 年提出的,之所以有这个概念,主要是因为由于潮汐等自然...
分库分表,是企业里面毕竟常见的针对高并发、数据量大的场景下的一种技术优化方案,也是一个非常高频的面试题。但是,因为很多人其实并没有非常丰富的分库分表的经验,所以能把这个问题回答的比较好的人其实还挺少的。 那么,本文就来试图把关于分库分表的事...
对象加锁的入口在ObjectSynchronizer::enter(h_obj, lock, current); 这个方法中(https://github.com/openjdk/jdk/blob/9583e3657e43cc1c6f210...
在之前的一篇文章《为什么会出现数据库和缓存不一致的问题》中,我们介绍过缓存和数据库会出现数据不一致的几种情况。 我们提到过,在数据库和缓存的操作过程中,可能存在”先写数据库,后删缓存”、”先写数据库,后更新缓存”、”先删缓存库,后写数据库”...
大家好,我是Hollis,今天要和大家说个事儿。 那就是,大家期待已久的新书终于出版了,来,先给大家亮个相: 这本书是在5.1之前就送去印刷了,放假回来之后预售就开启了,可是还没等我在公众号告知大家,预售第一天就登上了京东的新书热销榜第一名...
关于缓存,相信很多人都不陌生,我们通常会在数据库之上搭建一个缓存服务器,将一些高频的数据存储到缓存中,可以提升查询效率,从而提高响应速度以及并发度。 但是,与此同时也带来了一个问题,那就是如何保证缓存和数据库之间的数据一致性? 在讨论怎么做...
不知道大家有没有遇到过类似的问题,应用在刚刚启动之后,前几次访问都会比较卡顿,RT都会比极高,在运行一段时间之后,就会顺畅很多了。 这背后的原因是什么呢? 今天给大家介绍一种可能的原因,也是一种经常被别人忽略的原因,也是我们线上环境遇到过很...
我最近经常看到很多人吐槽,很多公司的面试喜欢问“八股文”,总是问那些工作中用不到的东西,很多人甚至用这个来评判一个公司的好坏,认为问八股文的公司就是垃圾公司。 我今天想从一个面试官的角度来谈谈,面试的时候问八股文这件事儿。 八股文:形容面试...
对于很多程序员来说,开源是在熟悉不过的了。我们愿意用很多开源软件,也愿意把自己写的东西开源出来给别人用。 很多工程师把开源精神奉为圭臬。开源社区里面大家都是自由的,平等的,温暖的,互相尊重的。 但是,开源这个事儿本身是没错的,很多工程师的开...