你改变了时间,也受到了时间的报复

Java的IO系统(2) - 字节流类

Java的IO系统针对输入和输出分别有两个基类:字节输入流InputStream、字符输入流Reader,字节输出流OutputStrea、字符输出流Writer。在操作字符或字符串时应该使用字符流,在操作字节或其他二进制格式时,应使用字节流。这里先介绍字节流的常用实现类。

阅读全文
发布于2019-12-25

Java的IO系统(1) - 概述

输入输出是一门语言要提供的基本功能,Java从最早的1.0版本就提供了相对完善的IO能力。这篇开始我们简单介绍一下Java的IO系统。

阅读全文
发布于2019-12-24

Java内存代码的动态编译(运行时编译)

Java 可以在运行时动态编译并执行代码,一种代码是本来就可以在虚拟机上跑的字节码,如Java、Scala、groovy等,另一类是Java特意提供了执行引擎的JavaScript。这里看一下如何进行动态编译。

阅读全文
发布于2019-12-18

Java中数的二进制存储

其实我们都知道整数在计算机中是用二进制表示的,并且也知道各种语言都提供了位运算相关的能力。这篇文章也没什么新意,如果你对二进制很熟悉,请跳过去看下一篇文章;不过二进制平时使用的不多,所以你还是可以在这里回顾一下自己的知识。

阅读全文
发布于2019-12-12

Redis集群下的mget(Spring RedisTemplate版)

前面《Redis的pipeline和mget》中说了,redis的批量操作命令对集群都不友好,因为Redis的官方集群方案是把key通过crc16计算hash映射到16384个桶上,落到哪个桶上就落到哪个机器上。网上的《缓存无底洞问题》讲了几种在集群下使用mget的方案:一是拆成多次get,二是根据机器节点顺序查询,三是根据节点并行查询,四是使用hash tag。 接下来我们用Spring提供的RedisTemplate进行演示。你可以看到,RedisTemplate使用的就是第三种方案。

阅读全文
发布于2019-12-07

Redis的pipeline和mget

前面《Redis的pipeline技术》介绍了redis的pipeline技术。pipeline会将请求合在一起,一次发给服务器执行。另外,Redis还提供了mset和mget命令,用于一次性操作多个key。这里我们看一下它们的对比。

阅读全文
发布于2019-12-06

Redis的pipeline技术(java版)

redis的pipeline提供的是一种批量提交请求的能力。因为Redis本身速度很快,操作都在内存里;而操作却需要通过网络,网络再好速度也慢。如果需要大批量操作,网络上的时间十分可观。pipeline就是将请求有序的组织在一起,一次发给服务器顺序执行。

阅读全文
发布于2019-12-05

在Redis中使用Lua脚本

Redis提供了丰富的指令集,但是仍然不能满足所有场景。 在一些特定场景下,需要自定义一些命令来完成某些功能。 因此,从2.6版本开始,Redis提供了Lua脚本支持,用户可以自己编写脚本来实现想要的功能。

阅读全文
发布于2019-12-03

akka 编程入门 - 状态机

由于akka是基于事件驱动的actor模型,所以很容易实现状态机。这里用官方的一个例子演示一下。不过为了更加清晰,我将大部分结构改成了中文名。代码可以从https://gitee.com/somefuture/akka-java-101/tree/master/manxi-fsm下载。

阅读全文
发布于2019-11-30

akka 编程入门 - 同步请求

akka是专门为分布式环境而生的,所以基本上所有的请求都是无等待的(wait-free)的。不过场景所限,一定还需要同步等待的逻辑。这里讲一下akka中的同步处理能力。

阅读全文
发布于2019-11-20

在Django项目中使用Redis

在Django项目中使用Redis其实就是Python项目中使用Redis,和是否Django环境无关。这篇文章说一下如何集成Redis集群。如果是本地或者其他非集群环境,可能不适合这种方法,而是有更简单的方法。这里不说了就。

阅读全文
发布于2019-11-13

在Django项目中使用Elasticsearch

在Django项目中使用elasticsearch同Java中有一点差别。Java的es库已经被大厂封装好了,直接调用对应的API就行(当前Java操作ES的API也特别复杂);而Python操作ES的方式主要是通过http发送json参数。不过这样和ES的入门方式一致,ES的各种文档也都是基于json格式请求的。

阅读全文
发布于2019-11-11