摘要: redis 主要有以下几种数据类型: string hash list set sorted set string 这是最简单的类型,就是普通的 set 和 get,做简单的 KV 缓存。 set college szu hash 这个是类似 map 的一种结构,这个一般就是可以将结构化的数据,比如 阅读全文
posted @ 2019-05-25 21:00 windpoplar 阅读(3205) 评论(0) 推荐(0) 编辑
摘要: redis 和 memcached 有啥区别? redis 支持复杂的数据结构 redis 相比 memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作。如果需要缓存能够支持更复杂的结构和操作, redis 会是不错的选择。 redis 原生支持集群模式 在 redis3.x 版本中, 阅读全文
posted @ 2019-05-25 20:54 windpoplar 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 缓存雪崩 对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着 阅读全文
posted @ 2019-05-25 20:43 windpoplar 阅读(10130) 评论(1) 推荐(1) 编辑
摘要: 一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化,串到一个内存队列里去。 串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍 阅读全文
posted @ 2019-05-25 18:41 windpoplar 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 为什么要用缓存? 用缓存,主要有两个用途:高性能、高并发。 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办? 缓存啊,折腾 600 阅读全文
posted @ 2019-05-25 13:06 windpoplar 阅读(3915) 评论(0) 推荐(0) 编辑
摘要: 大量消息在 mq 里积压了几个小时了还没解决 几千万条数据在 MQ 里积压了七八个小时,从下午 4 点多,积压到了晚上 11 点多。这个是我们真实遇到过的一个场景,确实是线上故障了,这个时候要不然就是修复 consumer 的问题,让它恢复消费速度,然后傻傻的等待几个小时消费完毕。这个肯定不能在面试 阅读全文
posted @ 2019-05-25 12:55 windpoplar 阅读(1824) 评论(0) 推荐(0) 编辑
摘要: 将对象注入到Spring容器并实现依赖注入 public class UserDao { @Resource AccountService accountService; public void print(){ System.out.println(accountService); } } 比如有 阅读全文
posted @ 2019-05-25 11:26 windpoplar 阅读(6098) 评论(0) 推荐(0) 编辑
摘要: Spring 框架提供了一个专门的测试模块(spring-test),用于应用程序的单元测试。 在 Spring Boot 中,你可以通过spring-boot-starter-test启动器快速开启和使用它。 在pom.xml文件中引入maven依赖: <dependency> <groupId> 阅读全文
posted @ 2019-05-25 11:24 windpoplar 阅读(4843) 评论(0) 推荐(0) 编辑
摘要: 1. 新建springboot工程 访问https://start.spring.io/,新建一个springboot工程。 自动生成的工程主要的注意点如下: 1)pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifa 阅读全文
posted @ 2019-05-25 11:23 windpoplar 阅读(629) 评论(0) 推荐(0) 编辑
摘要: 使用SpringBoot来开发一个简单的restful api网关功能,目标:实现对SpringBoot的简单入门。 1. 创建SpringBoot项目 可以通过spring官网(https://start.spring.io)的来创建springboot项目,或者idea的springboot i 阅读全文
posted @ 2019-05-25 11:20 windpoplar 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 在SpringBoot中的应用 凡注册到Spring容器内的bean,实现了EnvironmentAware接口重写setEnvironment方法后,在工程启动时可以获得application.properties的配置文件配置的属性值。 demo演示 直接上代码,比如我的application. 阅读全文
posted @ 2019-05-25 11:18 windpoplar 阅读(1420) 评论(0) 推荐(0) 编辑
摘要: 一,配置属性类 其实就是值对象注入的方式去配置一些Spring常用的配置,我们编写一个最简单的配置对象。 @ConfigurationProperties(prefix = "hello") //@Component //如果这里添加了注解那么在自动配置类的时候就不用添加@enableConfigu 阅读全文
posted @ 2019-05-25 08:58 windpoplar 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程(http://blog.csdn.net/yanzi1225627/article/details/26950615/) 或者是使用多个DataSource 然后创建多个SessionFactory,在使用Dao层的时候通过不同的 阅读全文
posted @ 2019-05-25 08:42 windpoplar 阅读(2539) 评论(0) 推荐(0) 编辑