摘要: JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统。但也有一些场合不适合使用 JSON 格式。 1 JSON 格式弊端 有这样的一个需求:希望把客户端的日志上传到服务器存储起来。原先的设计是把 JSON 格式写入日志文件。形如: [{"logTypeComment":"info", 阅读全文
posted @ 2022-09-03 08:59 Deniro_Lee 阅读(929) 评论(1) 推荐(2) 编辑
摘要: Redis 缓存主要缓存穿透、缓存击穿与缓存雪崩异常场景,今天我们来讲讲缓存穿透。 1 场景描述 缓存穿透是指客户端请求一个缓存和数据库中都不存在的 key。由于缓存中不存在,所以请求会透过缓存查询数据库;由于数据库中也不存在,所以也没办法更新缓存。因此下一次同样的请求还是会打在数据库上。 好像缓存 阅读全文
posted @ 2022-07-17 15:50 Deniro_Lee 阅读(245) 评论(0) 推荐(0) 编辑
摘要: | 数据类型 | 应用场景 | 说明 | | | | | | String | 各种计数器,比如评论计数器。 | 包含 decr,incr 命令,执行递减与递增操作。 | | List | 各种列表,比如粉丝列表。 | | | Set | 标签管理、共同好友、共同关注、共同爱好 | 无序集合。集合支 阅读全文
posted @ 2022-07-03 15:43 Deniro_Lee 阅读(17) 评论(0) 推荐(0) 编辑
摘要: Redis 缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。 1 定时删除 为 key 设置一个过期时间,时间一到,由定时器任务删除这个 key。 优点:节省内存,因为 key 一过期,就会被立即删除。 缺点:CPU压力大,因此相当于 CPU 在轮询判断当前时间是否 阅读全文
posted @ 2022-06-26 18:55 Deniro_Lee 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 前提是这个内部类必须是 public 。 假设外部类需要实例化某个类的内部类。那么必须首先实例化内部类的所在类,然后再通过 .new 语法来实例化这个内部类。下面是一个示例: public class DotNew { public class Inner { } public static voi 阅读全文
posted @ 2022-04-05 18:16 Deniro_Lee 阅读(618) 评论(0) 推荐(0) 编辑
摘要: Java 的静态内部类就是定义在一个类的内部,并且标注为 static 的类。由于类是静态的,所以不需要通过外围类的实例来创建。下面是一个示例: public class Outer { private static final Logger log = LoggerFactory.getLogge 阅读全文
posted @ 2022-04-05 18:14 Deniro_Lee 阅读(279) 评论(0) 推荐(1) 编辑
摘要: 先从一个示例说起。该示例实现了迭代器模式的数组,可添加、可遍历数组内部的元素。而且还可以判断是否已到了数组末尾。 首先定义了一个接口,本质上是一个迭代器: //迭代器接口 public interface Selector { //判断是否到了数组末尾 boolean end(); //获取当前索引 阅读全文
posted @ 2022-03-20 18:23 Deniro_Lee 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 所要运行的 py 文件在子目录中,并且该文件引用了另一个子目录中的 py 模块。类似这样: 原因 在运行环境下, a.py 找不到 b.py 所以抛出 ModuleNotFoundError。 解决 把父文件夹的所在路径加入运行环境,代码如下: import os import sys dirnam 阅读全文
posted @ 2022-03-20 18:16 Deniro_Lee 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1 什么是静态工厂方法 Java 静态工厂方法是在方法前加上 public static,让这个方法变为公开、静态的方法。该方法返回该类的一个实例,就好像一个工厂生产出一个产品。所以称之为静态工厂方法。在 Boolean.java 中有一个静态工厂方法示例: public static Boolea 阅读全文
posted @ 2022-03-13 17:49 Deniro_Lee 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Openfire 是一个基于 XMPP 协议的 IM 服务框架。这里我们来说一说如何安装它。 1 下载 zip 安装包 首先下载 Openfire 安装包,下载路径为:http://www.igniterealtime.org/projects/openfire/ 这里以 zip 安装包为例,数据库 阅读全文
posted @ 2022-03-13 17:45 Deniro_Lee 阅读(235) 评论(0) 推荐(0) 编辑