/avatar.png

Mr.

linux安装Docker

安装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 设置镜像仓库

启动jar包时参数配置

【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 .

MySQL使用技巧

生成只读权限用户 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。

MyBatis使用技巧

新增、更新数据不刷新缓存 缓存在新增、更新数据时会自动失效,对于部分影响不大的操作可以设置不刷新缓存,方法是在语句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.