05 2020 档案
摘要:字符集之在UTF-8中,一个汉字为什么需要三个字节? (一)在UTF-8中,一个汉字为什么需要三个字节? UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的表示顺序。有关Unicode为什么会出现就不叙述了,Unicode是针对所有计算机的使用者定义一套统一的编码
阅读全文
摘要:a) Bitmap如何做到多维交叉计算的? Bit即比特,是目前计算机系统里边数据的最小单位,8个bit即为一个Byte。一个bit的值,或者是0,或者是1;也就是说一个bit能存储的最多信息是2。Bitmap可以理解为通过一个bit数组来存储特定数据的一种数据结构;由于bit是数据的最小单位,所以
阅读全文
摘要:一、概述 本文将讲述Bit-Map算法的相关原理,Bit-Map算法的一些利用场景,例如BitMap解决海量数据寻找重复、判断个别元素是否在海量数据当中等问题.最后说说BitMap的特点已经在各个场景的使用性。 二、Bit-Map算法 先看看这样的一个场景(来自《编程珠玑》):给一台普通PC,2G内
阅读全文
摘要:IO编程 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 比如你打开浏览器,访问新浪首页,浏览器这个程序就需要通过网络IO获取新浪的网页。浏览器首先会发送数据
阅读全文
摘要:一、Redis为什么是单线程 注意:redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其他模块仍用了多个线程。 因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽,既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。
阅读全文
摘要:Elasticsearch聚合后分页深入详解 2018-03-20阅读 1.7K0 1、Elasticsearch支持聚合后分页吗,为什么? 不支持,看看Elasticsearch员工如何解读。 这个问题,2014年在github上有很长的讨论。究其为什么ES不支持聚合后分页?可概括如下: 1)性能
阅读全文
摘要:String 1、String 常用命令: 除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 应用场景: String是最
阅读全文
摘要:1.背景 对于锁大家肯定不会陌生,在Java中synchronized关键字和ReentrantLock可重入锁在我们的代码中是经常见的,一般我们用其在多线程环境中控制对资源的并发访问,但是随着分布式的快速发展,本地的加锁往往不能满足我们的需要,在我们的分布式环境中上面加锁的方法就会失去作用。于是人
阅读全文
摘要:计算机如何表示字符 计算机是二进制的,字符最终也是转换成二进制保存起来的。字符集就是定义字符对应的数值。 Unicode是一个字符集,为每个字符规定一个用来表示该字符的数字,但是并没有规定该数字的二进制保存方式,utf8规定了对于unicode值的二进制保存方式。 utf8是可变长度字符编码,不同的
阅读全文
摘要:Select…For Update语句的语法与select语句相同,只是在select语句的后面加FOR UPDATE [NOWAIT]子句。 该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行)。当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句
阅读全文
摘要:前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的是golang的锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快。 一、什么场景下需要用到锁 当
阅读全文
摘要:编程语言中反射的概念 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每种语言的
阅读全文
摘要:最近由于项目要求,需要对 IPFS 源码进行修改,由于自己在此之前没有接触过 Go 语言,在使用 go mod 导入本地自己开发的工具包的时候折腾了好久才搞定。 记录一下,以备后期查阅。 Go 语言的 Module 新特性是在 go1.11 的发布之后才支持的,这是 Go 语言新的一套依赖管理系统。
阅读全文