Monk

People left, wild geese flying sound

深入学习Redis

Redis

Redis内存划分 1. 数据 作为数据库,数据是最主要的部分;这部分占用的内存会统计在used_memory中。 Redis使用键值对存储数据,其中的值(对象)包括5种类型,即字符串、哈希、列表、集合、有序集合。这5种类型是Redis对外提供的,实际上,在Redis内部,每种类型可能有2种或更多的内部编码实现;此外,Redis在存储对象时,并不是直接将数据扔进内存,而是会对对象进...

Redis笔记

Redis

redis 基本数据类型 redis 内存淘汰机制:redis 提供 6种数据淘汰策略 volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰 volatile-random:从已设置过期时间...

Spring学习笔记

spring

Spring Spring Boot - Hibernate-Validator进行参数校验 引入依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> ...

Nginx学习笔记

nginx

Nginx - 深入理解Nginx模块开发与架构解析 Nginx 特点: 更快 在正常情况下,单次请求会得到更快的响应 在高峰时期,Nginx比其他Web服务器更快的响应请求 高扩展性 高可靠性 低内存消耗 单机支持10W以上的并发 热部署 Linux下安装Nginx(基于源代码安装) 安装前必备环境 安...

Gradle学习笔记

gradle

Gradle 安装Gradle 安装JDK,Gradle 需要运行在一个 Java 环境里 Gradle 自带 Groovy 库,所以没必要安装 Groovy. 任何已经安装的 Groovy 会被 Gradle 忽略。 去官网下载zip包,解压到一个目录。 3.1 如果是Windows系统:设置GRADLE_HOME环境变量,然后在Path环境变量中加入GRADLE_HOME/...

深入理解Java8

Java8

Java8 零.Lambda表达式 为什么需要Lambda表达式 1.在Java中,我们无法将函数作为参数传递给一个方法,也无法声明返回一个函数的方法。 2.在JS中,函数参数是一个函数,返回值是另一个函数是常见的,所以JS是一门非常典型的函数式语言 什么是Lambda表达式:维基百科:函数式编程(英语:functional programming)或称函数程序设计,又称泛函编程,...

Docker命令全集

Docker

Docker 全攻略 一. docker的优缺点 docker优点: Docker的资源利用率比传统的虚拟机更高 Docker支持跨节点部署 版本可控,组件可复用 共享镜像 轻量,易维护 docker缺点: 宿主资源没有完全做到隔离 Golang语言尚未成熟 ...

Netty

Netty

Netty 异步的、基于事件驱动、网络框架 应用领域 客户端服务器端开发 Socket开发 自定义协议开发 基础构件块 Channel 回调 Future 事件 ChannelHandler 核心组件 Channel EventLoop ChannelHandler ChannelPipeline ChannelHandle...

重构-读书笔记

Refactor

重构 概念:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。 重构技术就是以微小的步伐修改程序。如果你犯下错误,很容易便可发现它。 第一章 重构,第一个案列 何时重构:如果你发现自己需要为程序添加一个特性,而代码结构使你无法和方便的达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。 重构的步骤 第一个步骤永远相同:我得...

代码整洁之道-读书笔记

Code Clean

爱上了代码的艺术,却偏偏痴迷于计算机的运算魅力 第一章 整洁代码 糟糕的代码如果从一开始就不去管理,那么只会越来越糟糕。不应该对糟糕的代码弃而不顾。 代码逻辑应该直截了当,叫缺陷难以隐藏,每个模块都应该只负责一件事情,尽量少的依赖关系,需要明确定义和提供清晰、尽量少的API 整洁的代码应该有单元测试和验收测试,整洁的代码看起来像是某位特别在意它的人写的,几乎没有改进的余地 ...