一、
1、mybatis或者ibatis向oracle插入数据的时候,如果参数中有null值,需要指定jdbcType类型的参数(注意大小写问题)
2、如果忽略contextConfigLocation此设定,则默认为“/WEB-INF/<servlet name>-servlet.xml”,其中<servlet name>以Servlet 名替换
3、逻辑外键——在数据库表中没有明确的表示,但是在程序员看来就是外键。为了避免删除一个数据的时候需要删除与他相关联的许多外键的麻烦,但是也会造成很多的垃圾数据
4、Dict_enable:设置数据是否有效,如果为0表示无效,1表示有效
二、
1、8005端口是与apach官网通讯用的
2、jar包冲突的时候,就近原则
3、Navigator:拷贝文件的时候的视图,特别方便
4、构建项目的时候要有先后关系
5、浏览器允许跨域访问但是获取不到结果
6、Java中更改了配置或者文件需要重新进行install,方便其他工程的引入
7、Classpath的具体位置在target/classes
三、
1、路由的选择:路径的选择
2、代理的作用:改变用户的行为
3、lua是一种脚本语言,编写nginx和Mysql proxy,也可以替代一部分的linux的脚本
4、Amoeba是国人开发,说明书为中文,基于mysql proxy,不用编程,配置两个xml文件即可,对程序没有侵入性
5、Mycat阿里,基于mysqlProxy
6、schema在mybatis中代表验证(数据库)
7、Amoeba支持负载均衡,默认轮询(和nginx一样)
8、HA在计算机行业代表高可用
9、一定要备份,不要将原服务器的文件替换,原服务器的文件名后边加上.bak
10、缓存只是一个复制数据
11、String通过json保存对象,存储方便,但是修改比较难
12、list有序可重复,set无序不可重复,zset有序的set
13、redis只有重启的时候才会从dump文件中加载,如果在启动的情况下清空数据不会影响dump文件中的数据
14、分片不是redis提供的,而是jedis(api)提供的
15、数据倾斜
16、对配置文件要求:看懂,会改
17、缓存放常用的,不常修改的
18、Mapper.readTree(jsonData):将json对象转换成jsonNode对象
19、如果自己try—catch,spring对service的事务作废
20、修改之后不更新,首先将缓存删除,重新编译,如果不行,找到对应编译的包,比较加载后的classes文件是否有了变更。还是不行就修改对应的文件名。
在进一步将整个项目清空缓存,重新编译
21、被观察者内部维护了一个观察者的集合
22、事件机制——观察者模式
23、Redis单机默认16个数据库, 0~15 分布式不支持数据库
五、
在高并发海量数据时,就会发生问题,缓存雪崩(缓存穿透),有了缓存数据库的压力就非常小了,缓存服务宕机,海量的请求就涌向了数据库,数据库承受不了这么大的请求,先开始不能响应,数据库宕机,重启缓存服务器,但是内存中没有数据,但是用户的请求又过来,缓存没有数据,用户的请求继
续访问数据库。重启数据库,数据库接着宕机。
拔网线,重启数据库服务器,重启缓存服务器。服务都起来了,插网线,海量的请求涌入,缓存服务器没数据,又涌向数据库服务器,数据库服务器接着宕机
Redis分布式存储,当用户第一次访问数据库时,返回前,把数据在redis中保存一份,redis会定时(1s)把内存中的数据保存到磁盘中。