-
对之前网站做了一些很简单的优化,给用户列表加了一个分页功能。分页就更好考虑加载速度,如果换一页就要等几秒,那体验感是非常差的。因此想到了加一个redis缓存。springboot整合redis有两种方式:一、使用注解,@EnableCaching@Cacheable...等二、使用RedisTemplate两者都能操作缓存,使用RedisTemplate操作肯定是比使用注解灵活、方便。但是从理论上来讲注解方式速度应该更快,因为使用注解如果在缓存中有就直接从缓存中取,不用进入方法。而RedisTemplat
-
前言redis可以说在实际项目开发中使用的非常频繁,在redis常用集群中,我们聊到了redis常用的几种集群方案,不同的集群对应着不同的场景,并且详细说明了各种集群的优劣,本篇将以redis分片集群为切入点,从redis分片集群的搭建开始,详细说说redis分片集群相关的技术点;单点故障;单机写(高并发写)瓶颈;单机存储数据容量限制;集群自动伸缩;集群自动故障下线与转移;搭建集群架构图前置准备1、准备一台(或6台服务器,条件允许的情况下)虚拟机或服务器;本例为演示效果准备了一台内存8G的服务器,将通过端
-
一.主键:1.1)主键字段定义:在数据库表中,如果有一组字段能够唯一确定一条记录,则可以把它们设计成表的主键字段。例子:如果要创建一个人的信息表(字段:姓名,年龄,籍贯,工作单位......),那么身份证号是唯一能确定你这个人的,所以身份证号是主键。1.2)创建:主键字段名primarykey1.3)主键的选取原则;原则上使用一个字段做主键,而且推荐使用没有业务含义的字段做主键,比如:id等。1.4)主键值的生成方式:主键字段的类型和长度由主键值的生成方式来决定:1.4.1)自增:借助数据库自身主键生成机
-
PHP中日期戳转时间戳在PHP中,我们可以使用内置的strtotime()函数将日期戳转换为时间戳。该函数的作用是将任何英文文本的日期时间描述解析为Unix时间戳。以下是一个将日期戳转换为时间戳的基本示例:$timestamp=strtotime("2021-08-18");echo$timestamp;//输出1629244800以上代码将把日期戳"2021-08-18"转换为时间戳1629244800,并在屏幕上输出。此外,如果你的日期字符串中包含时间,则可以通过添加一个空格和时间来转换时间戳。以下是
-
1.查看原先路径◼打开MySQL8.0CommandLineClient◼输入showvariableslike'%datadir%';(分号不能丢)2.停止MySQL(1)方法1:◼以管理员身份运行命令提示符win+R→输入cmd→ctrl+shift+enter或者在任务栏的搜索框中搜索“命令提示符”,然后右键,选择以管理员身份运行◼输入netstopMySQL80注意:这里的,MySQL80是服务器的名字,不同版本的可能不同,图示为8.0版本,对应的就是80(默认
-
1安装1.1下载wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb1.2安装dpkg-imysql-apt-config_0.8.22-1_all.deb安装过程中出现选择项,通过上下键选择OK继续安装即可1.3安装MySQLServer更新apt软件源apt-getupdate安装MySQLServerapt-getinstallmysql-server1.4常用命令#查看服务状态servicemysqlstatus#停止服务s
-
Redis持久化机制实现原理是什么?持久化:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置持久化流程是什么?既然redis的数据可以保存在磁盘上,那么这个流程是什么样的呢?要有下面五个过程:(1)客户端向服务端发送写操作(数据在客户端的内存中)。(2)数据库服务端接收到写请求的数据(数据在
-
什么是tinyint(M)?先来了解下mysql中字符串类型varchar(M)和数值类型tinyint(M)的区别?字符串列类型:varchar(M)而言,M是字段中可以存储的最大字符长度,也就是说是字段长度。根据设置,当你插入超出字段长度的数据时,你很可能会收到错误提示,即使没有收到错误提示,你插入的数据也会被自动截断以适应该字段的预定义长度。所以,varchar(20)和varchar(40)是不同的,其真实反映了该字段可以存储的数据长度。数值列类型:其长度修饰符表示最大显示宽度,与该字段物理存储没
-
配置Redis1.添加Redis依赖org.springframework.bootspring-boot-starter-data-redis2.添加redis配置信息redis:host:127.0.0.1port:6379database:0password:#连接超时时间timeout:10s配置AOP1.自定义注解/***防止表单重复提交注解*/@Target(ElementType.METHOD)//注解的作用目标为方法@Retention(RetentionPolicy.RUNTIME)//
-
DQLDQL英文全称是DataQueryLanguage(数据查询语言),数据查询语言,用来查询数据库中表的记录。基本语法DQL查询语句,语法结构如下:SELECT字段列表FROM表名列表WHERE条件列表GROUPBY分组字段列表HAVING分组后条件列表ORDERBY排序字段列表LIMIT分页参数基础查询1、查询多个字段SELECT字段1,字段2,字段3...FROM表名;SELECT*FROM表名;注意:*号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。2、字段设置别名SELECT字段
-
MySQL中的casewhen有用两种用法,官方文档中的说明如下:用法一:CASEcase_valueWHENwhen_valueTHENstatement_list[WHENwhen_valueTHENstatement_list]...[ELSEstatement_list]ENDCASE用法二:CASEWHENsearch_conditionTHENstatement_list[WHENsearch_conditionTHENstatement_list]...[ELSEstatement_list
-
union:对多个结果集进行并集操作,不包括重复行,同时进行排序。unionall:对多个结果集进行并集操作,包括重复行,不进行排序。查询部门小于30号的员工信息,和部门大于20小于40号的员工信息。①.先查询部门小于30号的员工信息。SELECTemployees_id,last_name,salary,department_idFROMemployeesWHEREdepartment_id
-
问题处理过程简单交代一下业务场景,为方便理解,对业务需求做了简化处理。现在有一个分销活动,每个人都可以成为分销人进行分享活动,一旦有人通过分享的活动连接购买之后分销人会有收益信息,当然分销活动商品也可以不通过分享链接而是直接购买,但是不会存在分销收益一说。表结构方面,所有的订单都存入订单表order中,对于存在分销关系的会将分销绑定信息(分销人与被分销人)记录到record表中,不通过分销直接购买的不会在record表中添加记录。现在要求统计一下当天的订单总数与分销记录总数,假设当天为2022.11.08
-
在MySQL中,可以使用ALTERTABLE语句来添加表字段。以下是一些示例代码,可以批量添加多个字段:1mysql表批量添加字段1.1添加单个字段ALTERTABLE`table_name`ADDCOLUMN`new_column_name``data_type`DEFAULT`default_value`COMMENT'description';其中,table_name是表名,new_column_name是新添加的字段名,data_type是新字段的数据类型,default_val
-
一、MySQL数据丢失的原因1.硬件故障硬件故障是导致MySQL数据丢失的主要原因之一。硬盘损坏、电源故障、CPU故障等都可能导致MySQL数据丢失。2.操作系统故障操作系统故障也是导致MySQL数据丢失的原因之一,例如操作系统死机、崩溃,或是其他与操作系统相关的故障都可能导致MySQL数据丢失。3.人为因素人为因素也可能导致MySQL数据丢失。例如,管理者无意中删除了重要数据,或是误操作导致MySQL表格被重写等。4.软件故障软件故障也可能导致MySQL数据丢失,例如MySQL本身出现漏洞或是异常时,也