centos 安装redis
检查依赖
1234gcc -v// 没有就在线安装yum install gcc-c++
安装redis下载 redis 安装包
1wget https://download.redis.io/releases/redis-6.2.6.tar.gz
解压
1tar -zxvf redis-6.2.6.tar.gz
使用root用户添加redis用户和组
1useradd redis
.执行make指令编译, 并指定安装目录
1make install PREFIX=/usr/local/redis
启动 redis服务1.直接启动
1234# 进入redis安装目录cd /usr/local/redis/bin/# 启动服务./redis-server
通过守护进程启动
1234567891011# 第一步:从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录cp /root/redis-6.2.6/redis.conf /usr/local/redis/bin/# 第二步:修改redis.conf配置文件cd /usr/local/re ...
只出现一次的数字 III
给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题12345678910111213141516class Solution { public int[] singleNumber(int[] nums) { Map<Integer, Integer> freq = new HashMap<Integer, Integer>(); for (int num : nums) { freq.put(num, freq.getOrDefault(num, 0) + 1); } int[] ans = new int[2]; int index = 0; for (Map.Entry<Integer, Integer> entry : freq.ent ...
在 SpringBoot 中设计一个订单号生成系统
在Spring Boot中设计一个订单号生成系统,主要考虑到生成的订单号需要满足的几个要求:唯一性、可扩展性、以及可能的业务相关性。以下是几种常见的解决方案及相应的示例代码:
UUID最简单的方法是使用UUID生成唯一的订单号。UUID(Universally Unique Identifier)是一种广泛使用的标识符,由128位组成,通常以32个十六进制数字表示,分为五组,形式为8-4-4-4-12的字符串,例如123e4567-e89b-12d3-a456-426614174000。
UUID全球唯一,实现简单,但缺点是UUID较长,不易记忆和存储。
Java中生成UUID的示例代码如下:
1234567891011121314151617181920import java.util.UUID;public class UUIDGenerator { public static String generateUUID() { // 生成一个UUID UUID uuid = UUID.randomUUID(); ...
面试题1
MySQL 索引有眼些
B+树索引:所有数据存储在叶子节点,复杂度为O(logn),适合范围查询。
哈希索引: 适合等值查询,检索效率高,一次到位。
全文索引:MyISAM和InnoDB中都支持使用全文索引,一般在文本类型char,text,varchar类型上创建。
R-Tree索引: 用来对GIS数据类型创建SPATIAL索引
物理存储维度
聚集索引:聚集索引就是以主键创建的索引,在叶子节点存储的是表中的数据。(Innodb存储引擎)
非聚集索引:非聚集索引就是以非主键创建的索引,在叶子节点存储的是主键和索引列。(Innodb存储引擎)
主键索引:一种特殊的唯一索引,不允许有空值。
普通索引:MySQL中基本索引类型,允许空值和重复值。
联合索引:多个字段创建的索引,使用时遵循最左前缀原则。
唯一索引:索引列中的值必须是唯一的,但是允许为空值。
空间索引:MySQL5.7之后支持空间索引,在空间索引这方面遵循OpenGIS几何数据模型规则。
MySQL 索引使用有哪些注展事项
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引, ...
利用 smb 上传文件到windows
导入maven包
123456789<dependency> <groupId>com.hierynomus</groupId> <artifactId>smbj</artifactId> <version>0.10.0</version></dependency><dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId></dependency>
在yml文件中建立配置
1234567891011windows: host: 192.168.1.105 port: 445 username: test password: test //备份目录 backupPath: backup_path //升级目录 upgradingPath: upgrading_path ...
利用 sftp 上传文件到linux
使用 maven导入 jar包
12345<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version></dependency>
创建对应的 Config信息映射
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869package com.lab.common.config;import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component; ...
说一下SSO 单点登录和 OAuth2.0 的区别
SSO是Single Sign On的缩写,OAuth是Open Authority的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。SSO大家应该比较熟悉,它将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。
OAuth2.0原理可能比较陌生,但平时用的却很多,比如访问某网站想留言又不想注册时使用了微信授权。以上两者,你在业务系统中都没有账号和密码,账号密码是存放在登录中心或微信服务器中的,这就是所谓的使用令牌代替账号密码访问应用。
SSO两者有很多相似之处,下面我们来解释一下这个过程。先来讲解SSO,通过SSO对比OAuth2.0,才比较好理解OAuth2.0的原理。SSO的实现有很多框架,比如CAS框架,以下是CAS框架的官方流程图。特别注意:SSO是一种思想,而CAS只是实现这种思想的一种框架而已
上面的流程大概为:
用户输入网址进入业务系统Protected App,系统发现用户未登录,将用户重定向到单点登录系统CAS Server,并带上自身地址service参数 ...
JAVA链表的实现——ListNode
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556//初始化class ListNode { //类名 :Java类就是一种自定义的数据结构 int val; //成员变量:数值 ListNode next; //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似 ListNode(int val){ //一个参数的构造方法 this.val=val; //把接收的参数赋值给当前类的val变量}ListNode(int val, ListNode next) { this.val = val; this.next = next; }//这个就是包含两个参数的构造方法}//创建及遍历链表class ListNode { int ...
SpringBoot实现各种参数校验
简单使用Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。
Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。接下来,我们以spring-boot项目为例,介绍Spring Validation的使用。
引入依赖如果spring-boot版本小于2.3.x,spring-boot-starter-web会自动传入hibernate-validator依赖。如果spring-boot版本大于2.3.x,则需要手动引入依赖:
12345<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0.1.Final&l ...
java 配置sh 脚本自启动
启动脚本
123export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jreexport PATH=$JAVA_HOME/bin/:$PATHnohup java -jar /home/administrator/java/admin.jar --spring.profiles.active=pro >/home/administrator/java/admin.log 2>1&
关闭
1234ID=`lsof -i:8080 |grep java |awk '{print $2}'`echo $IDkill -9 $IDecho "kill success!"
编辑服务文件在/etc/systemd/system/ 目录下创建同名*.service
123456789[Unit]Description=Auto Start Java springboot Pojoe ...