- 博客(19)
- 收藏
- 关注
原创 jvm
当Java源代码(.java)文件被编译后,会变成字节码(.class)文件,它是一个二进制文件。然后字节码文件就会被加载进Java虚拟机中(即:JVM中)。而JVM中又是怎样的呢?初识JVM内存区域的划分被分为了如下的几个区域:...
2021-01-02 23:14:27
59
1
原创 苏煤州对象
苏煤州对象@Testpublic void test(){//在开发中一般都使用json来传递对象User user = new User(“郑辉盛”,18);//向redis中添加数据redisTemplate.opsForValue().set(“user”,user);System.out.println(redisTemplate.opsForValue().get(“user”));}1234567811,然而实体类序列化只是在jdk中序列化,在我们进行对象保存时
2021-01-02 00:22:37
56
原创 在徐各州
在徐各州原因:没有在我们安装在本地的redis下启动redis-server.exe以及redis-cli.exe,安装连接在一开始就已经说了,这里再说一下:https://github.com/tporadowski/redis/releases安装好之后也不用配置环境,主机和端口默认为127.0.0.1 6379...
2021-01-02 00:19:17
52
原创 南北自京城
南北自京城在点开配置文件类中就可以发现,redis基本操作就在这个对应的配置文件中了如一些使用的默认数据库为第0个,url,主机等,不过实际开发中一般在linux下,并且这些命令一般不会用代码实现,而是使用配置文件,在配置文件中修改这些指令...
2021-01-02 00:17:39
49
原创 无在锡纸
无在锡纸application.properties配置#配置redisspring.redis.host=127.0.0.1spring.redis.port=63791234,在项目加载完之后,可以分析一波源码在外部库中就能发现这个redis已经加载进来
2021-01-02 00:16:02
64
原创 JoinPool
当然我们也可以用并行流来实现并发调用,代码如下:List articleBos = articleDoPage.getRecords().parallelStream().map(r -> {String nickname = userManager.getNickname(r.getUserId());return articleBoConvert.convertPlus(r, nickname);}).collect(Collectors.toList());1234并行流的优点
2021-01-02 00:13:36
103
原创 jedis
jedis,同时需要使用下面的fastjson<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version></dependency
2021-01-02 00:12:21
125
原创 boolean
判断顺序表是否为满 public boolean isFull(){ if(this.usedSize == this.elem.length){ return true; } return false;}
2021-01-02 00:11:19
103
原创 usedSize
创建类和构造方法public class MyArrayList {private int [] elem;private int usedSize;public MyArrayList(){ this.elem = new int [10];}public MyArrayList(int capacity){ this.elem = new int[capacity];}}
2021-01-02 00:10:18
200
原创 map
比如下面这段代码,首先查询出文章信息,然后根据文章中的用户ID去查询用户的昵称。List articleBos = articleDoPage.getRecords().stream().map(r -> {String nickname = userManager.getNickname(r.getUserId());return articleBoConvert.convertPlus(r, nickname);}).collect(Collectors.toList());...
2021-01-02 00:09:21
51
原创 key
获取指定的key的失效时间/*** 指定key的失效时间*/@GetMapping(“expire”)public void expire(String key, long time) {//参数一:key//参数二:睡眠时间//参数三:睡眠时间单位 TimeUnit.DAYS 天 TimeUnit.HOURS 小时 。。。redisTemplate.expire(key, time, TimeUnit.MINUTES);}...
2021-01-01 00:43:47
168
原创 Template
RedisTemplate方法讲解判断key是否存在/*** 判断key是否存在*/@GetMapping(“haskey”)public boolean hasKey(String key) {return redisTemplate.hasKey(key);}
2021-01-01 00:42:18
51
原创 Redis
RedisTemplate五种数据结构的操作redisTemplate.opsForValue(); //操作字符串redisTemplate.opsForHash(); //操作hashredisTemplate.opsForList(); //操作listredisTemplate.opsForSet(); //操作setredisTemplate.opsForZSet(); //操作有序zset...
2021-01-01 00:41:25
39
原创 public
另一个场景就是API聚合的场景,需要并行调用多个接口,将结果进行组装。public Object aggregationApi() {long s = System.currentTimeMillis();List ids = new ArrayList<>();ids.add(“1”);ids.add(“2”);ids.add(“3”);Map<String, UserResponse> callResult = AsyncTemplate.call(ids, id -
2021-01-01 00:40:45
104
原创 RPC
稍微做了下封装,提供了更方便使用的工具类来实现并发调用多个接口的逻辑。第一种方式,适用于比如从ES查出了一批ID, 然后根据ID去数据库中或者调用RPC查询真实数据,最后得到一个Map,可以根据Key获取对应的数据。内部是多线程并发调用,会等到结果全部返回...
2021-01-01 00:39:17
125
原创 Long
并行流的优点很明显,代码不用做特别大的改动。需要注意如果用并行流,最好单独定义一个ForkJoinPool。除了用并行流,还可以使用批量查询的方式来提高性能,降低RPC的调用次数,代码如下:List userIds = articleDoPage.getRecords().stream().map(article -> article.getUserId()).collect(Collectors.toList());Map<Long, String> nickNameMap = u
2021-01-01 00:38:15
137
原创 List
如果文章有10条数据,那么就需要调用10次用户服务提供的接口,而且是同步调用操作。当然我们也可以用并行流来实现并发调用,代码如下:List articleBos = articleDoPage.getRecords().parallelStream().map(r -> {String nickname = userManager.getNickname(r.getUserId());return articleBoConvert.convertPlus(r, nickname);}).co
2021-01-01 00:37:18
54
原创 articleBos
比如下面这段代码,首先查询出文章信息,然后根据文章中的用户ID去查询用户的昵称。List articleBos = articleDoPage.getRecords().stream().map(r -> {String nickname = userManager.getNickname(r.getUserId());return articleBoConvert.convertPlus(r, nickname);}).collect(Collectors.toList());...
2021-01-01 00:34:22
48
原创 API
当数据量较大的时候,都会通过分库分表来拆分,分担读写的压力。分库分表后比较麻烦的就是查询的问题,如果不是直接根据分片键去查询的话,需要对多个表进行查询。在一些复杂的业务场景下,比如订单搜索,除了订单号,用户,商家 这些常用的搜索条件,可能还有时间,商品等等。目前常见的做法将数据同步到ES这类搜索框架中进行查询,然后通过搜出来的结果,一般是主键ID, 再去具体的数据表中查询完整的数据,组装返回给调用方。...
2021-01-01 00:33:09
61
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人