Java 8新特性详解
引言Java 8是Java历史上最重要的版本之一。本文全面介绍Java 8的核心新特性。 一、Lambda表达式1.1 基本语法12345678910111213141516171819// 传统写法Runnable r1 = new Runnable() { @Override public void run() { System.out.println("Hello"); }};// Lambda写法Runnable r2 = () -> System.out.println("Hello");// 有参数的LambdaComparator<Integer> comp = (a, b) -> a - b;// 多行LambdaComparator<Integer> comp2 = (a, b) -> { int result = a - b; return result;}; 1.2 函数式...
Redis缓存设计模式
引言Redis是最流行的缓存数据库。本文介绍Redis的缓存设计模式。 一、缓存模式1.1 Cache-Aside(旁路缓存)12345678910111213141516171819202122232425public User getUser(Long id) { // 1. 查缓存 User user = redis.get("user:" + id); if (user != null) { return user; } // 2. 查数据库 user = userDao.selectById(id); // 3. 写缓存 if (user != null) { redis.setex("user:" + id, 3600, user); } return user;}public void updateUser(User user) { // 1...
Docker Swarm集群管理
引言Docker Swarm是Docker原生的集群管理工具。本文介绍Swarm的使用和实战。 一、集群初始化1234567891011# 初始化Swarm(管理节点)docker swarm init --advertise-addr 192.168.1.10# 加入工作节点docker swarm join --token SWMTKN-1-xxx 192.168.1.10:2377# 加入管理节点docker swarm join-token manager# 查看节点docker node ls 二、服务部署12345678910111213141516171819# 创建服务docker service create \ --name web \ --replicas 3 \ --publish 80:80 \ nginx:latest# 查看服务docker service lsdocker service ps web# 扩缩容docker service scale web=5# 更新服务docker service update --image ngi...
设计模式实战应用
引言设计模式是软件设计的最佳实践。本文介绍常用设计模式的实现和应用。 一、创建型模式1.1 单例模式1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950// 饿汉式public class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() {} public static Singleton1 getInstance() { return INSTANCE; }}// 懒汉式(双重检查锁)public class Singleton2 { private static volatile Singleton2 instance; private Singleton2() ...
PostgreSQL实战应用
引言PostgreSQL是功能强大的开源数据库。本文介绍其核心特性和应用。 一、基本操作12345678910111213141516-- 创建数据库CREATE DATABASE mydb;-- 创建表CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);-- 插入数据INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');-- 查询SELECT * FROM users WHERE name LIKE 'A%'; 二、JSONB类型12345678910111213141516171819-- 创建表CREATE TABLE products ( id SERIAL PRIMARY KE...
Nginx高可用架构设计
引言Nginx高可用是保证系统稳定性的关键。本文介绍Nginx高可用架构设计。 一、Keepalived主备切换1234567891011121314151617181920212223242526272829# 安装Keepalivedyum install keepalived# 主节点配置 /etc/keepalived/keepalived.confvrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100 }}# 备节点配置vrrp_instance VI_1 { state BACKUP ...
Java网络编程基础
引言网络编程是Java的重要应用领域。本文介绍Java网络编程的基础知识和实战应用。 一、TCP Socket编程1.1 服务器端1234567891011121314151617181920212223public class TCPServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); System.out.println("服务器启动,监听端口8080..."); while (true) { Socket socket = serverSocket.accept(); System.out.println("客户端连接: " + socket.getInetAddress()); ...
MySQL分库分表实战
引言分库分表是应对海量数据的重要方案。本文介绍分库分表的策略和实现。 一、分库分表策略1.1 垂直拆分1234-- 按业务拆分用户库: users, user_profiles订单库: orders, order_items商品库: products, categories 1.2 水平拆分123456-- 按范围分表users_2022, users_2023-- 按哈希分表users_0, users_1, users_2, users_3-- user_id % 4 = 分表号 二、ShardingSphere1234567// 配置数据源spring.shardingsphere.datasource.names=ds0,ds1// 分片规则spring.shardingsphere.rules.sharding.tables.t_order.actual-data-nodes=ds$->{0..1}.t_order_$->{0..1}spring.shardingsphere.rules.sharding.tabl...
Java IO流详解
引言IO流是Java处理输入输出的核心API。本文系统讲解Java IO流的使用方法。 一、IO流分类12345678910111213141516171819字节流├── InputStream(输入)│ ├── FileInputStream│ ├── BufferedInputStream│ └── ObjectInputStream└── OutputStream(输出) ├── FileOutputStream ├── BufferedOutputStream └── ObjectOutputStream字符流├── Reader(输入)│ ├── FileReader│ ├── BufferedReader│ └── InputStreamReader└── Writer(输出) ├── FileWriter ├── BufferedWriter └── OutputStreamWriter 二、字节流2.1 FileInputStream和FileOutputStream12345678910111213...
MySQL性能分析工具详解
引言性能分析是数据库优化的第一步。本文介绍MySQL的性能分析工具。 一、慢查询日志123456789-- 开启慢查询日志SET GLOBAL slow_query_log = ON;SET GLOBAL long_query_time = 2;-- 查看配置SHOW VARIABLES LIKE 'slow_query%';-- 分析慢查询mysqldumpslow -s t -t 10 /var/log/mysql/slow.log 二、EXPLAIN分析1234567EXPLAIN SELECT * FROM users WHERE age > 25;-- 重要字段-- type: 访问类型(const > eq_ref > ref > range > index > ALL)-- key: 使用的索引-- rows: 扫描行数-- Extra: 额外信息 三、Performance Schema1234567-- 开启性能监控UPDATE performance_schema.setup_instruments ...





