- 博客(54)
- 收藏
- 关注
原创 Docker LNMP 环境
Docker Compose LNMP 一键安装程序;提供基于 Docker 的 Nginx、MySQL、PHP、Redis 等服务。
2023-05-16 08:45:00 401
原创 第10讲 | 如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
如何保证集合是线程安全的? ConcurrentHashMap如何实现高效地线程安全?
2022-09-27 20:59:42 184
原创 第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同?
对比Hashtable、HashMap、TreeMap有什么不同?
2022-09-24 16:00:26 133
原创 第8讲 | 对比Vector、ArrayList、LinkedList有何区别?
对比Vector、ArrayList、LinkedList有何区别?
2022-09-22 19:47:25 189
原创 第5讲 | String、StringBuffer、StringBuilder有什么区别?
理解 Java 的字符串,String、StringBuffer、StringBuilder 有什么区别?
2022-09-19 20:00:00 196
原创 Elasticsearch
Elasticsearch 是一个基于 Lucene 的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口 Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索、稳定可靠、快速安装、使用方便优点:Lucene 不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。.........
2022-09-01 15:16:43 2361
原创 浅谈IOC与DI
控制反转IOC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IOC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IOC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IOC容器了,通过IOC容器来建立它们之间的关系。
2022-04-23 23:50:07 492 1
原创 CentOS 7 防火墙开放端口访问
Centos 7 使用 firewalld 代替了原来的 iptables,比 iptables 的规则好写多了
2022-01-04 15:31:54 741
原创 CentOS 7 安装 Nginx
Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.20.0稳定版已经于2021年4月20日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。 Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:在连接高并发的情况下,Nginx是Apache服务不错的替代品:能够支持高达 50,000 个并发连接数的响应 Nginx作为负载均衡服务:Nginx 既可以在内部直接支
2022-01-04 14:07:22 1249
原创 Nginx 启用 gzip 压缩
Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现,此处的gzip代表GNU zip。也经常用来表示gzip这种文件格式。这也是HTTP1.1协议定义的两种压缩方法中最常用的一种压缩方法,客户端浏览器大都支持这种压缩格式。
2021-12-28 14:54:55 1710
原创 git常用命令
配置用户名和邮箱# 全局配置git config --global user.name "Your Name"git config --global user.email "email@example.com"# 配置单个仓库的用户名、邮箱git config user.name "Your Name"git config user.email "email@example.com"# 查看配置信息git config --list创建SSH key# 生成秘钥ssh-k.
2021-12-28 11:33:26 232
原创 PHP中特殊形式的函数
函数就是实现特定功能的代码块,我们定义函数的直接目的就是将程序按功能进行分块,以此呢,方便程序的使用、管理、阅读和调试。函数大致可分为系统函数与自定义函数,当系统中提供给我们的函数不能实现你想要实现的一个特定功能的时候,就需要你自己去定义一个函数了,这称之为自定义函数,当然PHP中还有一些特殊形式的函数,比如递归函数,回调函数等。
2021-12-24 16:14:39 433
原创 浅谈PHP容器服务
PHP容器Container的实现IOCDI 用一个容器来管理一系列相同的逻辑实现,这些相同的逻辑实现都源自同一个抽象;通过容器根据具体的逻辑来创建具体的逻辑处理实现对象,从而可以为将来的逻辑实现扩展制定出一个标准,以达到将来的实现逻辑可以平滑的插入到容器中来达到未来的同类实现逻辑的扩展 适用:当发现一些逻辑用来处理相似的业务时,并且只是因为某一个固定的关键节点不同,其他处理很相似时,并且未来还会有类似的处理逻辑添加进来时首先我们要先了解IoC和DI即控制反转和依赖注入,要明白IoC/DI是干嘛
2021-12-23 15:04:40 1563
原创 PHP中使用cURL实现进行Post请求 ssl 双向认证
/** * @param string $url 接收数据的api * @param string $vars 提交的数据 * @param int $second 要求程序必须在 $second 秒内完成,负责到 $second 秒后放到后台执行 * @param array $aHeader 设置HTTP头字段的数组 * @return string | boolean 成功且对方有返回值则返回 */ function curl_pos
2021-07-21 11:27:25 1074
原创 tp5.1 PHP + Redis实现自动取消订单
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) 需要注意此功能是在 redis 2.8版本以后推出的,因此你服务器上的 reids 最少要是 2.8 版本以上
2021-07-12 11:19:18 1296 7
原创 浅谈Flex布局
Flex 布局什么是Flex布局基本概念容器的属性flex-direction 属性row 网页布局(layout)是CSS的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。什么是F
2021-06-17 11:06:33 716
原创 浅谈防抖与节流
JS 防抖与节流防抖(debounce) 在前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize、scroll、mousemove 等等,但有些时候我们并不希望在事件持续触发的过程中那么频繁地去执行函数。 在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用 debounce(防抖)和 throttle(节流)的方式来减少调用频率,同时又不影响实际效果。 防抖和节流,都是控
2021-06-16 15:53:42 191
原创 Redis篇(10)-- 缓存穿透和雪崩
Redis 缓存穿透和雪崩缓存穿透(查不到)缓存击穿(量太大,缓存过期)**缓存雪崩**Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一 些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。缓存穿透(查不到)缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓
2021-04-07 19:23:05 107
原创 Redis篇(9)--主从复制
Redis 主从复制主从复制一主二从哨兵模式主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复
2021-04-07 19:12:00 84
原创 Redis篇(8)--发布订阅
Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:订阅端:接收消息# subscribe 订阅给定的一个或多个频道的信息127
2021-04-07 18:46:47 58
原创 Java篇之多线程-04-线程同步
Java 线程同步线程同步(synchronized)同步方法同步方法同步块死锁Lock(锁)线程同步:多个线程操作同一个资源并发:同一个对象被多个线程同时操作线程同步(synchronized)现实生活中,我们通常会遇到 “同一个资源,多个人都想使用的问题”。比如食堂排队打饭,每个人都想吃饭,最天然的解决办法就是排队,一个个来处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象,这时候我们就需要线程同步。线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这
2021-04-02 19:16:13 224 2
原创 Redis篇(7)--持久化
Redis 持久化持久化RDB(Redis DataBase)AOF(Append Only File)RDB、AOF总结持久化Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化功能RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写
2021-04-01 19:35:24 270
原创 Redis篇(6)--配置文件 redis.conf
redis.conf(配置文件)Redis 启动时,需要通过配置文件来启动units 单位INCLUDES 包含NETWORK 网络bind 127.0.0.1 # 绑定的ipprotected-mode yes # 保护模式port 6379 # 端口号GENERAL 通用# 以守护进程的方式运行,默认为no。通常需要手动设置为yes,在该模式下,redis会在后台运行# docker环境中则不需要更改。Docker的容器需要其中的主进程一直在前端运
2021-04-01 19:25:54 139
原创 Java篇之多线程-03-线程状态
Java 线程状态五大状态线程方法停止线程线程休眠 sleep线程礼让 yield线程强制执行 join观测线程状态线程优先级守护(daemon)线程五大状态线程方法方法说明setPriority(int newPriority)更改线程的优先级static void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠void join()等待该线程终止static void yield()暂停当前正在执行的线程对象,并执行其
2021-04-01 19:12:48 356
原创 Java篇之多线程-02-线程创建
三种创建方式Thread自定义线程类继承 Thread 类重写 run() 方法,编写线程执行体创建线程对象,调用 start() 方法启动线程package com.moon.demo01;/* 创建线程方式: 1. 继承 Thread 类 2. 重写 run() 方法 3. 调用 start() 开启线程 线程开启不一定立即执行,由 CPU 调度执行 */public class TestThread extends Thread {
2021-04-01 19:02:09 211
原创 Java篇之多线程-01-线程简介
进程、线程、多线程在操作系统中运行的程序就是进程,比如你的QQ、微信、播放器、游戏、IED等~一个进程可以有多个线程,如观看视频时可以同时听声音、看图像、看弹幕等~编程中普通方法调用和多线程:Process(进程) 与 Thread(线程)说起进程,就不得不说下程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程
2021-04-01 18:58:48 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人