Redis 安全性检查

Redis 在设计上,是用来被可信客户端访问的,也就意味着不适合暴露给外部环境非可信客户端访问。 最佳的实践方法是在 Redis 前增加一个访问控制层,用于校验用户请求。 基本配置 Redis 本身提供了一些简单的配置以满足基本的安全控制。 IP 绑定。如果不需要直接对外提供服务,bind 127.0.0.1 就行了,切忌 bind 0.0.0.0 端口设置。修改默认的 6379,一定程度上避免被扫描。 设置密码。Redis 的密码是通过 requirepass 以明文的形式配置在 conf 文件里的,所以要尽可能得长和复杂,降低被破 Read more ...

2017-08-25 redis , database , nosql , security , key-value , db

Linux 主机在线监控: nodequery

很久没有更新这个分类下的文章了,其实一直在体验不同的产品,只是真的很少有能拿出来讲一下的东西。不管是硬件还是软件,最近几年使用的东西越来越狭窄,越来越收缩,当然对于某一个特定的需求,总有一个产品能够占领绝大多数市场,而也有部分产品能够瓜分小众市场。这里要介绍的这个 NodeQuery 就不是一个大而全的产品,而是一个很精细的小众产品。我用它也一年多了,我的需求很简单,能够实时监控我的 VPS,能够在宕机或者高负载时报警。NodeQuery 完全能够满足我的需求。 用 NodeQuery 自己的话描述自己就是:”一个轻量、易用的 Linux 服务器监控服 Read more ...

2017-08-23 linux , vps , monitor

Python 笔记之内存模型 Variables Objects and References 区别

许多使用静态语言比如 C、 C++ 或者 Java 的人,在转到 Python 的时候可能第一个会疑惑的就是 Python 不需要显示的指定类型,那么 Python 是怎么知道变量的类型呢? 变量创建流程 在 Python 中,变量的创建遵循着一个非常合理的方式,以 a=3 来举例子: 变量创建 一个变量(名字)比如 a ,当第一次被赋值时被创建。 变量类型 Variable Types 一个变量永远不会有任何类型信息或者约束,类型的概念和 Object 关联,而不是变量名字。变量都是通用的(泛 Read more ...

2017-08-22 python , variable , object

Python modules and package

Python 很重要的一个概念 module,用来组织代码结构。 import 导入搜索的路径 代码的 home 路径 PYTHONPATH 目录(如果存在的话) 标准库路径 .pth 文件中配置的路径(如果存在的话) 最终,这些路径都会存在 sys.path 中,是一个保存着一系列搜索路径的 list。 >>> import sys >>> sys.path 导入工作流程 在路径中找到导入的模块 编译 运行 Package 一个目录的 Python code 被称为 Read more ...

2017-08-20 python , modules , import , pythonpath , library

《Spring MVC 实战》笔记

从 WizNote 中整理。 POJO, Plain Old java object, 最简单的 Java 对象 [[Dependency Injection]] 带来的最大好处,松耦合,如果一个对象只通过接口(而不是具体实现或初始化过程)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。 AOP aspect-oriented programming, 面向切面编程允许将遍布应用各处的功能分离出来形成可重用的组件 依赖注入让互相协作的软件组件保持松散耦合,而 AOP 则是让遍布各处的功能分离出来形成可重用的 Read more ...

2017-08-19 spring-mvc , spring , notes , java

Spring MVC 中常用的注解

一般的注解,比如常见的 @Override 是 Java 从 1.5 版本开始引入,注解一般用来对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等等进行注解,他的作用一般分为如下四个方面: 生成文档 编译检查,通过注解让编译器在编译期间进行检查校验 编译时动态处理,编译时通过注解标示进行动态处理,比如生成代码 运行时动态处理,反射注入实例等等 一般的注解可以分为三类: Java 自带的注解,包括 @Override @Deprecated 等等 元注解,用于定义注解,包括 @Retention @Targe Read more ...


Python 笔记之内置类型

这篇文章总结一下 Python 的内置类型。 类型 Object type Example literals/creation Numbers 1234 , 3.1415 , 3+4j , Decimal , Fraction Strings ‘spam’ , “guido’s” , b’a\x01c’ Lists [1, [2, ‘three’], 4] Read more ...

2017-08-16 python , linux , object , type , object-type

google foobar page

https://www.google.com/foobar/?eid=sfeTWdGPBIac8QXcxpXgAQ&usg=AG3vBD082_C21k4vEcaG4KspC-1eGqU7KA Minion Labor Shifts =================== Commander Lambda's minions are upset! They're given the worst jobs on the whole space station, and some of them are starting to complain Read more ...

2017-08-16

@Autowired vs @Resource vs @Inject 的区别

为了实现依赖注入 DI 而引入,Java 提供 javax.annotation.Resource , javax.inject.Inject 注解,Spring 框架提供了 org.springframework.beans.factory.annotation.Autowired 。依赖注入(Denpendency Injection,DI), 控制反转(Inversion of Control, IoC),主要的目的是去除代码耦合。具体可参考其他资料。 @Autowired 是 Spring 特有的注解,默认按照类型装配。 @Resou Read more ...


Spring Interceptor vs Filter 拦截器和过滤器区别

Spring的Interceptor(拦截器)与Servlet的Filter有相似之处,都能实现权限检查、日志记录等。不同的是: Filter Interceptor Summary Filter 接口定义在 javax.servlet 包中 接口 HandlerInterceptor 定义在org.springframework.web.servlet 包中   Filter 定义在 web.xml Read more ...

2017-08-14 Spring , Java , Web

最近文章

  • 推荐我使用的 Agent Skills 随着 AI 编程助手的快速发展,[[Claude Code]]、[[Codex]]、[[Gemini CLI]] 等工具已经成为开发者日常工作中不可或缺的伙伴。然而,这些工具的默认功能往往只是冰山一角。通过安装和配置 Agent Skills,我们可以大幅扩展这些 AI 助手的能力,让它们更加智能、更加专业。
  • Antigravity Agent Skills 功能介绍与实战指南 2026 年 1 月 14 日,[[Google]] 为其 AI 驱动的开发工具 [[Antigravity]] 推出了 Agent Skills 功能。这个开放标准的技能系统让开发者可以将专业知识打包成可复用的技能包,极大地扩展了 AI 智能体的能力边界。
  • Gemini CLI Agent Skills 功能介绍与上手指南 [[Gemini CLI]] 最近推出了一个非常强大的新功能,名为 [[Agent Skills]]。这个功能极大地扩展了命令行 AI 助手的边界,允许用户根据自己的需求定制专业的技能包。
  • 我购买了一个 DJI Mic Mini 最近为了提升移动拍摄时的收音质量,我入手了 DJI Mic Mini。虽然大疆提供了带充电盒的套装,但我只购买了单机版本(发射器+接收器,2 TX 1 RX 版本),因为对于我日常的拍摄需求来说,本体的续航已经完全足够了。
  • Auto Claude:Vibe Kanban 的终极形态?让 AI 并行开发的“指挥中心”来了 在上一篇文章 《Vibe Kanban:当 AI 开始并行协作,我们的开发方式变了》 中,我分享了一种利用 [[Vibe Kanban]] 和 AI Agent 实现并行开发的工作流理念。我们可以利用 Vibe Kanban 来统一管理多个并行任务。