MySQL 乐观锁

一、乐观锁说明 乐观锁的使用原理是在数据表中添加一个版本字段,每次先查询当前的版本,在更新数据的时候判断版本是否和查询到的版本一致,一致就说明数据没有被修改,可以操作数据并把版本号+1;如果版本号不一致就说明数据已经被更改了,不进行操作。 相对悲观锁来说,乐观锁用得更广泛一点,但乐观锁的缺点是操作失 ... 阅读更多

MySQL 悲观锁

一、什么是悲观锁 前文说明了 MySQL 事务在并发环境下会导致脏读和不可重复读等等的现象,数据库通过事务隔离级别也就是我们常说的锁来解决这个问题。悲观锁的工作原理是假设每次事务都会被其他事务打断,所以在每次操作数据时,都把数据设置成锁定状态,使得其他事务无法再操作。悲观锁能有效的防止数据并发带来的各种 ... 阅读更多

MySQL 的事务隔离级别

一、事务并发带来的问题 1.1 第一类丢失更新 两个事务同时更新一行数据,第一个事务正常更新,第二个事务中途退出回滚数据到初始状态,导致第一个事务更新失效。 如:银行卡存储了用户甲的余额 4000,此时事务 A 和 B 同时开始更新余额,事务 A 将余额更新到 5000 后正常退出,事务 B 执行出错导致更新失败,然后回 ... 阅读更多

MySQL 事务的基本用法

一、什么是事务 事务是一组 SQL 语句构成的语句集合,它保证所有的 SQL 都能全部执行或者全部不执行。 事务必须满足四个条件 (ACID):Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久性 原子性:一个事务 (transaction) 中的所 ... 阅读更多

计算机网络体系结构

计算机网络体系结构有三种:OSI 分层 (7 层) 、五层协议 (5 层) 和 TCP/IP 分层 (4 层) 。 三者之间的分层示意图: 每一层的作用如下: 物理层:通过媒介传输比特, 确定机械及电气规范 (比特 Bit) 数据链路层:将比特组装成帧和点到点的传递 (帧 Frame) 网络层:负责数据包从源到宿的传递和网际互连 (包 ... 阅读更多

源码编译安装 Redis 6.x

一、编译安装 Redis 官网地址:redis 官网,官网可能会打不开,可以在 github 的发布页中下载:Release-redis 。 当前最新版 6.0-rc1,下载 redis:

编译 redis6.0 需要 GCC5 以上版本,低版本会报错,如 ... 阅读更多

MySQL 中 CHAR(m) 、 VARCHAR(m) 和 INT(m) 的区别

一、区别 char(m):m 表示长度,固定 m 宽度的字符,不足用空格补齐,取出数据时会删掉尾部的空格。 varchar(m):m 表示长度,不固定,有多少字符就存多少字符,不会删除尾部的空格。 int(m):m 表示显示的位数,不会决定 int 的范围大小,需配合 zerofill 字段一起使用。 二、示例 创 ... 阅读更多

Wireshark 抓取以太网数据包

一、概述 几乎所有的数据包都是通过以太网来传输,所以使用 wireshark 抓取以太网数据包非常容易,这里我们以 DNS 数据包为例。 二、抓包 1. 准备数据 打开 wireshark,在筛选栏输入 dns,点击开始抓包,然后打开命令提示符,输入 ping www.baidu.com,此时 wireshark 将 ... 阅读更多

Wireshark 的基本操作界面

一、查看所有网卡 打开主界面会自动加载所有的网卡接口,并获取上面的数据包信息,可以通过这个判断该接口是否正常使用或者是否有数据连通。 在捕获-选项以及主工具栏的快捷按钮中也可以打开这个界面: 二、监视网卡 在捕获接口界面选择相应的接口,然后点击开始即可监视网卡的数据信息。在主界面双击网卡也可以开始监 ... 阅读更多

WP 安全插件 Login Security Solution

wordpress 默认用户登录做了错误次数限制,但是没有对 xmlrpc.php 这个文件接口限制,导致此文件被黑客利用进行暴力破解,此时可以利用 Login Security Solution 插件来对这个文件接口进行限制。 设置界面: 插件的原理:当用户输入错误的帐号密码到达一定次数时,不直接封禁该 ... 阅读更多