安装Docker 参考官方教程:https://docs.docker.com/get-docker/
windows 默认安装在C:\Program Files\Docker
解决方式:
在其它你希望的安装位置新建一个Docker文件,这里以 B:\Docker 为例
删除如下目录 C:\Program Files\Docker 以管理员身份打开cmd(win+R => 输入cmd => ctrl+shift+enter) cmd中执行命令(mklink /j “C:\Program Files\Docker” “B:\Docker”) 执行下载的安装程序 linux 卸载旧的版本
1 2 3 4 5 6 7 8 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 需要安装包
1 sudo yum install -y yum-utils 设置镜像仓库
【SpringBoot】java -jar xxx.jar 指定配置 springboot会按照下列优先级来
springboot会按照下列优先级来加载application.property配置文件:优先级由高到低
1、jar包同级目录的config目录下
2、jar包同级目录的application.property
3、classpath下的/config目录
4、classpath下根目录的配置文件
如果不想要这些目录下的配置文件为最高级,我们也可以自己使用如下命令指定配置文件:
1 java -jar -Dspring.config.location=D:\config\config.properties demo-0.0.1-SNAPSHOT.jar Windows 指定端口
1 java -jar springboot.jar --server.port=8181 指定配置文件
1 java -jar springboot.jar --spring.profiles.active=dev 同时指定端口与配置文件
1 java -jar springboot.jar --server.port=8181 --spring.profiles.active=dev Linux 后台服务方式启动
1 nohup java -jar springboot.jar --server.port=8181 >outlog.log 2>&1 & 加载服务器配置文件application-dev.yml
1 nohup java -Dserver.port=8086 -Dspring.config.additional-location=./application-dev.yml -jar .
生成只读权限用户 1 2 3 4 5 6 7 8 9 # 创建用户 # create user [用户名]@[ip] identified by [密码]; create user 'readonly'@'%' identified by 'readonlyqi4728'; # 给用户赋予权限 # grant [权限] on [库.表] to [用户名]@[ip]; grant select on myblog.* to 'readonly'@'%'; # grant all on sasd.* to 'lzs'@'%'; # 刷新权限 flush privileges; 自动忽略重复插入 数据不存在则插入,数据已存在则忽略,可以使用MySQL ignore来实现。当primary key或者unique key重复时会自动忽略本次插入操作。
1 insert ignore into 'table'('label') values('value'); 自动判断更新或插入(多线程容易产生死锁,可以捕获异常,但不推荐,insert就insert,update就update) 数据不存在则插入,数据已存在则更新,可以使用MySQL on duplicate key update来实现。当primary key或者unique key重复时会自动执行update。
新增、更新数据不刷新缓存 缓存在新增、更新数据时会自动失效,对于部分影响不大的操作可以设置不刷新缓存,方法是在语句xml中设置flushCache=false。
1 <update id="demo" flushCache="flase"></update> 模糊查询 MySQL模糊查询一把条件是使用like条件,经常使用传入的变量作为like条件。在MyBatis里面,like使用变量需要用到${}或者concat。建议使用concat,#{}可以防止SQL注入。
1 2 like '%${value}%' like concat('%',#{value},'%') 使用缓存 使用缓存能够极大提升应用的性能。二级缓存的开启方式是
1 <cache flushInterval="60000"></cache> 自动创建表 不建议在MyBatis里面建表,原则上数据表要由数据库管理员创建。但是对于一些小应用,可能开发者集多个角色于一身,自动创建表反而利大于弊。如下的语句在<select>标签内使用了CREATE TABLE IF NOT EXISTS语法,可以在无表时自动创建表,有表时会跳过执行。
1 2 3 4 5 6 <select id="createTable"> CREATE TABLE IF NOT EXISTS `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `path` varchar(128) NOT NULL COMMENT '路径', ) ENGINE=MyISM DEFAULT CHARSET=utf8; </select> 设置SQL超时时间 通过timeout属性可以设置超时时间,也就是在抛出异常之前,驱动程序等待数据库返回请求结果的秒数
事务 Redis事务本质:一组命令的集合。一个事务中的所有命令都会被序列化,在事务执行的过程中,会按照顺序执行。
因此,有特性:一次性、顺序性、排他性。
Redis事务没有隔离级别的概率,所有的命令在事务中,并没有被直接执行。只有发起执行命令exec的时候才会执行。
原子性:要么同时成功,要么同时失败
Redis单条命令是保证原子性的,但事务不保证原子性。
Redis的事务:
开启事务(multi) 命令入队(…) 执行事务(exec) 正常执行事务
1 2 3 4 5 6 7 8 9 10 11 12 13 127.0.0.1:6379> multi # 开启事务 OK # 命令入队 127.0.0.1:6379(TX)> set k1 v1 QUEUED 127.0.0.1:6379(TX)> set k2 v2 QUEUED 127.0.0.1:6379(TX)> set k3 v2 QUEUED 127.0.0.1:6379(TX)> exec # 执行事务 1) OK 2) OK 3) OK 放弃事务 discard
1 2 3 4 5 6 7 8 9 10 11 12 127.
Geospatial 可以推算地理位置信息,方圆几里的人
geoadd 添加地理信息
1 2 3 4 5 6 7 8 9 10 11 # 添加地理位置 # 规则:两极无法直接添加,一般会下载城市数据,直接通过java程序一次性导入。 # 参数 key 值(经度、纬度、名称) # 有效经度从-180度到180度 # 有效纬度从-85.05112878度到85.05112878度 127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing (integer) 1 127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai (integer) 1 127.0.0.1:6379> geoadd china:city 106.50 29.53 chongqing 114.05 22.52 shengzhen 120.16 30.24 hangzhou 108.96 34.26 xian (integer) 4 geopos从key里返回所有给定位置元素的位置(经度和纬度)
1 2 3 4 5 6 7 8 9 10 11 127.