呼延十

还记得年少时的梦吗

[设计模式] 代理模式

前言 之前的设计模式文章, 都是因为读书而做笔记写的, 这次的代理模式, 是真正的需求驱动学习, 学习驱动文章了…. 其实动态代理及cglib动态代理的大名, 很早就听说过了, 作为面试必备问题, 从校招时候就经常听到, 但是这个名字太唬人了, 且原来一直没有遇到应用场景, 因此也就懒着一直没有学习. 这次遇到了应用场景, 简单学习之后进行了应用的开发, 闲下来之后当然是要追根究底并且...

Java的deepcopy

前言 这两天遇到了一个Bug(是的, 我就是bug开发工程师),情景如下: 我们封装了对DB查询的缓存,对于一个查询请求来说, 首先从redis里读取,如果命中缓存,则直接返回结果. 如果未命中缓存,从db中查询数据,返回结果,同时异步将查询到的数据添加到redis中. 在这个过程中, 发生了ConcurrentModifyException. 经过查看代码, 确定了问题出在异步填充缓...

Redis系列(十三)应用之分布式锁

有 Redis 的面试恐怕没有不问分布式锁的吧。.. 分布式锁有着多种多样的实现方式,今天就来介绍一下 如何用 Redis 实现一个分布式锁。 目录 定义 实现思路 Java 实现代码 Redisson 的分布式锁实现 org.redisson.RedissonLock#lock() 方法 org.redisson.RedissonL...

Redis系列(十二)scan Info Object等特殊命令集合

前言 在上一篇文章中,介绍了 Redis 的所有命令的基本含义及其用法。但是 Redis 的命令太多,导致上一篇文章只能简单的进行总结,而有一些命令是那么简单的话语总结不了的,因此在这里单独的进行讲解。 当然,这种复杂的命令,不属于线上常用数据结构内部,而是一些监控和 debug 用到的。 目录 前言 目录 SCAN scan 原理 联...

Redis系列(十一)redis命令全集

目录 目录 背景介绍 public DB string list sets sorted sets hashes streams bitmaps hyperloglogs geospatial index 背景介绍 以下摘自:Redis 官网。 Redis is an open source (BSD licensed),...

Redis系列(十)redis对象系统

前言 介绍 类型 编码和底层数据结构 五种常见的对象类型 类型检查与命令多态 内存回收 对象共享 对象淘汰:空转时长 总结 参考文章 联系我 前言 其实关于本文,我犹豫再三。 对象系统值得写一篇文章吗?从技术上来讲,当然是值。但是对于我们大部分人来说,它都是隐身的。 写的话,顺序放在...

Redis系列(九)底层数据结构之五种基础数据类型的实现

前言 定义 字符串对象 int raw embstr 浮点数如何保存? 编码转换条件 总结 列表对象 总结 集合对象 intset hashtable 总结 有序集合对象...

Idea发布最适合程序员的字体!

作为 编译期界的大佬, JetBrains公司一直致力于提供更好的编码环境. 前两天, JetBrain推出了一个新的字体 JetBrain Mono. 号称是最适合程序员的编码的字体, 我赶紧尝了尝鲜, 体验了一天之后发现确实好看, 因此推荐给大家. 首先是官网 JetBrain Mono字体. 看一下官方的示例: . 是不是看起来很棒, 怎么安装呢? 如果你的IDEA ...