自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 收藏
  • 关注

原创 Linux w和who命令:查看登陆用户信息

从 w 命令的输出中已知,Linux 服务器上已经登录了两个 root 用户,一个是从本地终端 1 登录的(tty1),另一个是从远程终端 1 登录的(pts/0),登录的来源 IP 是 192.168.0.108。Linux 中,使用 w 或 who 命令都可以查看服务器上目前已登录的用户信息,两者的区别在于,w 命令除了能知道目前已登陆的用户信息,还可以知道每个用户执行任务的情况。从第二行开始,显示的是当前所有登陆系统的用户信息,第二行是用户信息的各列标题,从第三行开始每行代表一个用户。

2023-12-25 15:35:43 289 1

原创 Linux vmstat命令:监控系统资源

如果服务器上的资源占用率比较高,那么使用 vmstat 命令查看到的参数值就会比较大,我们就需要手工进行干预。如果是非正常进程占用了系统资源,则需要判断这些进程是如何产生的,不能一杀了之;vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。除此之外,表 1 罗列出了 vmstat 命令的第二种基本格式中常用的选项及各自的含义。

2023-12-12 17:04:37 458

原创 Linux anacron命令 检测长期不执行的定时任务

anacron 会分析现在的时间与时间记录文件所记载的上次执行 anacron 的时间,将两者进行比较,如果两个时间的差值超过 anacron 的指定时间差值(一般是 1 天、7 天和一个月),就说明有定时任务没有执行,这时 anacron 会介入并执行这个漏掉的定时任务,从而保证在关机时没有执行的定时任务不会被漏掉。在当前的 Linux 中,其实不需要执行任何 anacron 命令,只需要配置好 /etc/anacrontab 文件,系统就会依赖这个文件中的设定来通过 anacron 执行定时任务了。

2023-12-12 17:02:07 442

原创 Linux at命令详解:定时执行任务

etc/at.allow 文件的管理更加严格,因为只有写入这个文件的用户才能使用 at 命令,如果需要禁用 at 命令的用户较多,则可以把少数用户写入这个文件。安装好 at 软件包并开启 atd 服务之后,at 命令才可以正常使用,另外可以了解一下at命令访问控制,访问控制指的是允许哪些用户使用 at 命令设定定时任务,或者不允许哪些用户使用 at 命令。/etc/at.allow 文件的优先级更高,如果 /etc/at.allow 文件存在,则 /etc/at.deny 文件失效。#在指定的时间关机。

2023-12-08 14:10:15 713

原创 Linux命令放入后台运行方法(&和Ctrl+Z)jobs、fg、bg、nohup命令

Linux 命令放入后台的方法有两种,分别介绍如下。

2023-12-08 11:10:07 1080

原创 Redis配置项汇总(chao详细)

no-appendfsync-on-rewrite no #相当于将appendfsync设置为no,不存在磁盘操作,只是将数据写入了缓冲区,写入速度非常快。min-slaves-to-write 3 #主节点仅允许当能够通信的从节点数量大于等于此处的值时,才允许接受写操作;auto-AOF-rewrite-min-size 64mb #触发aof重写操作,至少要达到的aof文件大小。min-slaves-max-lag 10 #从节点延迟时长超出此处指定的时间时,主节点会拒绝写入操作;

2023-12-07 09:52:20 225

原创 Java使用Redis

最简单的连接方式,就是通过 Jedis 对象连接。Redis String 类型操作,示例如下。列表元素为: www.baidu.com。redis 存储的字符串为: 测试cc。查看所有 key,示例如下。列表元素为: 测试1。列表元素为: 测试2。

2023-12-06 17:29:33 279 1

原创 Redis缓存问题

在实际的业务场景中,Redis 一般和其他数据库搭配使用,用来减轻后端数据库的压力,比如和关系型数据库 MySQL 配合使用。Redis 会把 MySQL 中经常被查询的数据缓存起来,比如热点数据,这样当用户来访问的时候,就不需要到 MySQL 中去查询了,而是直接获取 Redis 中的缓存数据,从而降低了后端数据库的读取压力。

2023-12-06 09:11:44 431

原创 Redis分布式锁应用(实现+原理)

分布式锁并非是 Redis 独有,比如 MySQL 关系型数据库,以及 Zookeeper 分布式服务应用,它们都实现分布式锁,只不过 Redis 是基于缓存实现的。Redis 分布式锁有很对应用场景,比如春运时,您需要在 12306 上抢购回家火车票,但 Redis 数据库中只剩一张票了,此时有多个用户来预订购买,那么这张票会被谁抢走呢?Redis 服务器又是如何处理这种情景的呢?在这个过程中就需要使用分布式锁。第一:互斥性是分布式锁的重要特点,在任意时刻,只有一个线程能够持有锁;

2023-12-05 10:26:32 83

原创 Redis集群:Sentinel哨兵模式(图文详解)

在 Redis 主从复制模式中,因为系统不具备自动恢复的功能,所以当主服务器(master)宕机后,需要手动把一台从服务器(slave)切换为主服务器。在这个过程中,不仅需要人为干预,而且还会造成一段时间内服务器处于不可用状态,同时数据安全性也得不到保障,因此主从模式的可用性较低,不适用于线上生产环境。Redis 官方推荐一种高可用方案,也就是哨兵模式,它弥补了主从模式的不足。

2023-12-05 08:57:06 1293

原创 我的创作纪念日

与CSDN的初次相遇,是好多年前,为了提升一下相关技术,就想着网上查阅资料,周末的一天在网上找学习资料的时候,得知CSDN是中国最大的计算机领域的学习社区,就这样就加入了CSDN的大家庭中,最初踏入CSDN时,还尚未注册账号,在资源池里面搜索着自己想了解的技术。就这样今年开始尝试在这里发布自己的文章,在分享了几篇文章之后,也有些许浏览量,让我更加有动力坚持写作,一是为了记录一些零散的技术,二是为了在忘记之时,能很快的到这里查询曾经写过的东西,再一个也可以和更多的人互相分享。

2023-11-26 10:55:01 149 1

原创 Redis Cluster主从模式详解

在软件的架构中,主从模式(Master-Slave)是使用较多的一种架构。主(Master)和从(Slave)分别部署在不同的服务器上,当主节点服务器写入数据时,同时也会将数据同步至从节点服务器,通常情况下,主节点负责写入数据,而从节点负责读取数据。

2023-11-24 15:37:56 1047

原创 Redis数据备份和还原

Redis SAVE 命令用于创建当前数据库的备份文件,文件名默认为dump.rdb。备份数据库数据可以增强对数据的保护,提升数据的安全性。当数据不小心丢失或者被删除时,我们就可以通过相应的操作进行数据恢复。本节介绍 Redis 的数据备份和数据还原操作。

2023-11-24 15:37:18 139

原创 Redis Transaction事务

Redis 事务的目的是方便用户一次执行多个命令。

2023-11-24 11:07:07 98

原创 Redis Stream消息队列

Stream 实际上是一个具有消息发布/订阅功能的组件,也就常说的消息队列。其实这种类似于 broker/consumer(生产者/消费者)的数据结构很常见,比如 RabbitMQ 消息中间件、Celery 消息中间件,以及 Kafka 分布式消息系统等,而 Redis Stream 正是借鉴了 Kafaka 系统。自定义 ID 比较简单,但是需要注意的是 ID 的形式必须是 “整数”,并且后面加入消息的 ID 必须大于前面消息的 ID,也就是自定义 ID 也必须遵守递增的规则。示例如下:创建消费组。

2023-11-23 15:12:15 144

原创 Redis key键

Redis 是一种键值(key-value)型的缓存型数据库,它将数据全部以键值对的形式存储在内存中,并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥,Redis 提供了诸多操作这把“密钥”的命令,从而实现了对存储数据的管理。

2023-11-23 15:03:50 324

原创 Redis数据类型

注意:这里指的数据类型是 Value(值) 的数据类型,而非 key。

2023-11-22 09:17:44 65

原创 Redis下载和安装(Windows系统)

下面对安装过程中涉及到的命令进行总结,主要包括以下命令:安装服务:redis-server --service-install卸载服务:redis-server --service-uninstall开启服务:redis-server --service-start停止服务:redis-server --service-stop服务端启动时重命名:redis-server --service-start --service-name Redis1。

2023-11-22 08:49:02 492

原创 MySQL 备份数据库mysqldump

数据库备份是指通过导出数据或者复制表文件的方式来制作数据库的副本。当数据库出现故障或遭到破坏时,将备份的数据库加载到系统,从而使数据库从错误状态恢复到备份时的正确状态。MySQL 中提供了两种备份方式,即 mysqldump 命令以及 mysqlhotcopy 脚本。由于 mysqlhotcopy 只能用于 MyISAM 表,所以 MySQL 5.7 移除了 mysqlhotcopy 脚本。mysqldump 命令执行时,可以将数据库中的数据备份成一个文本文件。

2023-11-03 11:42:36 386

原创 MySQL用户管理(创建、修改、删除用户)

MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。

2023-11-03 11:22:43 2196

原创 MySQL 权限表db、tables_priv、columns_priv和procs_priv

db 表中的权限列和 user 表中的权限列大致相同,只是user 表中的权限是针对所有数据库的,而 db 表中的权限只针对指定的数据库。db 表用户列有 3 个字段,分别是 Host、User、Db,标识从某个主机连接某个用户对某个数据库的操作权限,这 3 个字段的组合构成了 db 表的主键。tables_priv 表用来对单个表进行权限设置,columns_priv 表用来对单个数据列进行权限设置。db 表比较常用,是 MySQL 数据库中非常重要的权限表,表中存储了用户对某个数据库的操作权限。

2023-11-02 11:43:55 1142

原创 MySQL user权限表详解

MySQL 在安装时会自动创建一个名为 mysql 的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL 会根据这些权限表的内容为每个用户赋予相应的权限。user 表是 MySQL 中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在 user 表里启用的所有权限都是全局级的,适用于所有数据库。user 表中的字段大致可以分为 4 类,分别是用户列、权限列、安全列和资源控制列,下面主要介绍这些字段的含义。

2023-11-02 10:02:07 2432

原创 MySQL调用存储过程和函数

存储过程和存储函数都是存储在服务器端的 SQL 语句集合。要想使用这些已经定义好的存储过程和存储函数就必须要通过调用的方式来实现。存储过程通过 CALL 语句来调用,存储函数的使用方法与 MySQL 内部函数的使用方法相同。执行存储过程和存储函数需要拥有 EXECUTE 权限(EXECUTE 权限的信息存储在 information_schema 数据库下的 USER_PRIVILEGES 表中)。

2023-11-01 15:00:52 505

原创 MySQL存储函数详解

如果在存储函数中的 RETURN 语句返回一个类型不同于函数的 RETURNS 子句中指定类型的值,返回值将被强制为恰当的类型。比如,如果一个函数返回一个 ENUM 或 SET 值,但是 RETURN 语句返回一个整数,对于 SET 成员集的相应的 ENUM 成员,从函数返回的值是字符串。上述代码中,创建了 func_student 函数,该函数拥有一个类型为 INT(11) 的参数 id,返回值为 VARCHAR(20) 类型。存储函数和存储过程一样,都是在数据库中定义一些 SQL 语句的集合。

2023-11-01 10:49:40 113

原创 MySQL存储过程

存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用“CALL存储过程名字”即可自动完成。常用操作数据库的 SQL 语句在执行的时候需要先编译,然后执行。存储过程则采用另一种方式来执行 SQL 语句。

2023-11-01 10:46:08 306

原创 MySQL常用函数汇总

MySQL 数值型函数 函数名称 作用 ABS 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL和CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 FLOOR 向下取整,返回值转化为一个BIGINT RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列 ROUND 对所传参数进行四舍五入 SIGN 返回参数的符号 POW和POWER 两个函数的功能相

2023-10-23 15:46:31 73

原创 MySQL常用运算符详细介绍

在 MySQL 中,可以通过运算符来获取表结构以外的另一种数据。例如,学生表中存在一个 birth 字段,这个字段表示学生的出生年份。如果想得到这个学生的实际年龄,可以使用 MySQL 中的算术运算符用当前的年份减学生出生的年份,求出的结果就是这个学生的实际年龄了。MySQL 所提供的运算符可以直接对表中数据或字段进行运算,进而实现用户的新需求,增强了 MySQL 的功能。

2023-10-23 11:31:46 320

原创 MySQL数据类型的选择(详解版)

本节主要讨论创建数据库表时如何选择数据类型。字符串类型是通用的数据类型,任何内容都可以保存在字符串中,数字和日期都可以表示成字符串形式。但是也不能把所有的列都定义为字符串类型。对于数值类型,如果把它们设置为字符串类型的,会使用很多的空间。并且在这种情况下使用数值类型列来存储数字,比使用字符串类型更有效率。另外需要注意的是,由于对数字和字符串的处理方式不同,查询结果也会存在差异。例如,对数字的排序与对字符串的排序是不一样的。

2023-10-22 09:29:53 374

原创 MySQL 数据库类型介绍及使用场景

整数类型又称数值型数据,数值型数据类型主要用来存储数字。不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。MySQL 主要提供的整数类型有,其属性字段可以添加 AUTO_INCREMENT 自增约束条件。下表中列出了 MySQL 中的数值类型。不同类型的整数存储所需的字节数不相同,占用字节数最小的是 TINYINT 类型,占用字节最大的是 BIGINT 类型,占用的字节越多的类型所能表示的数值范围越大。根据占用字节数可以求出每一种数据类型的取值范围。

2023-10-20 09:00:45 248

原创 MySQL数据库操作(创建、修改、删除、查询)

使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:ALTER DATABASE [数据库名] {[ DEFAULT ] CHARACTER SET <字符集名> |[ DEFAULT ] COLLATE <校对规则名>}语法说明如下:ALTER DATABASE 用于更改数据库的全局特性。使用 ALTER DATABASE 需要获得数据库 ALTER 权限。数据库名称可以忽略,此时语句对应于默认数据库。

2023-10-19 16:13:17 509

原创 Linux安装配置MySQL详细

步骤 7):配置 MySQL 服务,将 /usr/share/mysql/ 或 /usr/share/ 文件夹下的某一个后缀名为 cnf 的文件拷贝到 /etc/ 文件夹下,并且改名为 my.cnf。提示:当窗口中出现如上图所示的说明信息,命令提示符变为“mysql>”时,表明已经成功登录 MySQL 服务器,可以开始对数据库进行操作了。推荐使用 RPM 包进行 Linux 平台下的安装,因为 RPM 包的安装和卸载都很方便,通过简单的命令就可以实现。步骤 5):安装成功后,使用以下命令登录 MySQL。

2023-10-17 16:00:49 202

原创 MySQL配置环境变量和启动登录

如果不配置环境变量,每次登录MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任意位置执行 MySQL 命令了在启动 MySQL 服务器之前,要先把 MySQL 的 bin 目录添加到系统的环境变量中,具体操作步骤如下。步骤 1):在桌面上右击“此电脑”→“属性”命令,如图所示。

2023-10-17 14:01:39 1609 1

原创 MyBatis (一级缓存和二级缓存)

MyBatis 提供了一级缓存和二级缓存的支持。默认情况下,MyBatis 只开启一级缓存。

2023-10-16 16:59:13 119

原创 MyBatis (where、set、foreach)标签

在上一节SQL 语句中加入了一个条件“1=1”,如果没有加入这个条件,那么可能就会变成下面这样一条错误的语句。显然以上语句会出现 SQL 语法异常,但加入“1=1”这样的条件又非常奇怪,所以 MyBatis 提供了 where 标签。where 标签主要用来简化 SQL 语句中的条件判断,可以自动处理 AND/OR 条件,语法如下if 语句中判断条件为 true 时,where 关键字才会加入到组装的 SQL 里面,否则就不加入。

2023-10-16 16:58:34 1116

原创 MySQL下载和安装详细步骤

本教程以 MySQL 5.7.29 为例介绍其在 Windows 10 操作系统下的安装和配置过程。步骤 1):打开 MySQL 官方网站(步骤 2):滑到网页底部,点击 DOWNLOADS 列表下的 MySQL Community Server。

2023-10-12 15:51:41 967

原创 MyBatis动态SQL(if、choose、when和otherwise)标签

动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动态的构建查询动态 SQL 只有几个基本元素,与 JSTL 或 XML 文本处理器相似,十分简单明了,大量的判断都可以在 MyBatis 的映射 XML 文件里配置,以达到许多需要大量代码才能实现的功能。

2023-10-11 16:07:00 1486

原创 MyBatis一对多关联查询

在 MyBatis 中,通过 <resultMap> 元素的子元素 <collection> 处理一对多级联关系,collection 可以将关联查询的多条记录映射到一个 list 集合属性中。示例代码如下在 <collection> 元素中通常使用以下属性。

2023-10-11 15:00:05 499

原创 MyBatis关联(级联)查询;一对一关联查询

级联关系是一个数据库实体的概念,有 3 种级联关系,分别是一对一级联、一对多级联以及多对多级联。例如,一个角色可以分配给多个用户,也可以只分配给一个用户。大部分场景下,我们都需要获取角色信息和用户信息,所以会经常遇见以下 SQL。在级联中存在 3 种对应关系。实际应用中,由于多对多的关系比较复杂,会增加理解和关联的复杂度,所以应用较少。推荐的方法是,用一对多的关系把它分解为双向关系,以降低关系的复杂度,简化程序。

2023-10-10 18:09:24 873

原创 MyBatis resultMap元素

resultMap 是 MyBatis 中最复杂的元素,主要用于解决实体类属性名与数据库表中字段名不一致的情况,可以将查询结果映射成实体对象。

2023-10-10 18:08:48 230

原创 MyBatis delete标签

在 WebsiteMapper.xml 中使用 delete 标签添加一条 delete 语句参数为 String 类型的字符串;返回值为 int 类型,表示执行 sql 语句后,被删除记录的行数。

2023-10-09 11:18:58 475

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除