spring cache和使用Redis技术实现 在方法执行前spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法返回值放到缓存中。可以通过查看注解的源码,获取SpEL表达式支持哪些写法。使用Google的GuavaCache作为缓存技术。使用EhCache作为缓存技术。将一条或多条数据从缓存中删除。接口来统一不同的缓存技术。使用Redis作为缓存技术。1.导入redis缓存坐标。将方法的返回值放到缓存中。将方法的返回值放到缓存中。更新删除都需要删除缓存。
redis常用命令 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时。向有序集合添加一个或多个成员,或者更新已存在成员的。通过索引区间返回有序集合中指定区间内的成员。有序集合中对指定成员的分数加上增量。获取存储在哈希表中指定字段的值。移除有序集合中的一个或多个成员。删除存储在哈希表中的指定字段。将一个或多个值插入到列表头部。移除并获取列表最后一个元素。获取列表指定范围内的元素。向集合添加一个或多个成员。移除集合中一个或多个成员。返回给定所有集合的交集。返回所有给定集合的并集。返回给定所有集合的差集。
会话跟踪技术 浏览器发送登录请求并将session存储在服务器1中,在下次请求中浏览器会拿着当前session请求服务器2去判断是否有登录的session,会发现服务器2中没有session,导致同一次会话出现不同请求。客户端携带session请求服务端,在服务端的众多session中寻找是否有此次携带的session,有就是同一次会话,否则不是。一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同意浏览器,以便在同一次会话的多次请求中。用户打开浏览器,访问web服务器,会话建立,直到一方断开连接,会话结束。
java中stream流 封装Bean过程:先使用map转换流分割数据,再封装到Bean中,最后转为List集合。终结方法:统计、打印 ===>最后一步,调用完毕,不能调用其他方法。中间方法:过滤、打印 ===>方法调用完毕,还可以调用其它方法。收集流中的数据,存放到集合中(List、Set、Map)1、先获取Stream流(流水线),并把数据放上去。2、使用Stream流中的api进行各种操作。结合Lambda表达式,简化集合、数组操作。
hive基本命令 注:外部表的数据和元数据单独存在,外部表删除后,数据本身(hdfs中)存在,元数据(mysql中)被删除。注:内部表的数据和元数据不独立,内部表删除后数据本身(hdfs中)和元数据(mysql中)全部删除。-- (内部表(正式员工):数据本身和元数据非独立,元数据修改后数据本身也会修改。-- 外部表(非正式员工):数据本身和元数据相互独立,元数据修改不影响数据本身)-- 外部表(非正式员工):数据本身和元数据相互独立,元数据删除不影响数据本身)-- (内部表(正式员工):元数据删除后数据本身也会删除。
hive启动命令 1、启动元数据管理服务(必须启动,否则无法工作)前台启动:bin/hive --service metastore后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &2、启动客户端Hive Shell方式(可以直接写SQL): bin/hive。
解决一些hive中的一些错误和解决方式 2. 初始化元数据库(derby) bin/schematool -dbType derby -initSchema。hadoop和hive的两个guava.jar版本不一致。删除低版本的那个,将高版本的复制到低版本目录下。1. hive 启动。
自动配置原理和自动配置变更 在@SpringBootApplication注解中配置自动配置相关信息。@ConditionalOnClass导入相关配置后自动配置相关信息。spring.factories指定程序启动是自动配置相关信息。如:导入redis的stater坐标,就自动配置相关信息。在application.xml配置自动配置相关信息。设置程序启动时自动配置的bean。
Bean加载控制 可以通过一系列的前置条件来控制bean的加载。使用注解式控制bean的加载,该注解数据springboot中的,所以必须导入springboot的stater坐标。如果有Mouse类的class对象加载,则加载Cat的bean对象,否则则不加载Cat。另外两种接口加载bean的方式,与此使用方法相同,都可以通过此方式去控制bean的加载。使用全路径名称加载bean,不需要使用注解定义bean,只需指定全路径名称即可。通过指定bean的全路径名称,加载bean。通过bean的名称控制bean的加载。