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

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

正则表达式(五)平衡组

这里讲一下平衡组。平衡组是比零宽断言受到支持更少的一个特性,比如Java8就不支持。前面的具名组、零宽断言,如果你找不到编辑器支持他们,可以使用浏览器的控制台,因为JavaScript是支持正则比较广泛的语言,但是平衡组复杂到连JavaScript也还没支持,似乎C#在支持,还有python。

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

正则表达式(四)零宽断言

前面几篇文章我们介绍了正则表达式的常用概念,包括《正反元字符》、《分支条件、分组》、《后向引用、懒惰匹配》。有了这些概念基本可以满足我们日常的使用。不过,正则提供给我们更高级的用法,让我们可以更方便的匹配复杂场景。这里介绍一下零宽断言。

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

正则表达式入门(三)后向引用、懒惰匹配

前面介绍了分组,关于分组还有更高级的用法,叫“后向引用”。使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理。

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