并发编程基础

线程

为什么使用多线程?只有一个目的就是更好的利用多核cpu的资源。多线程一定快吗?不一定,多线程上下文切换需要花费时间,如果执行的任务比较简单,多线程花的时候可能比串行执行还要慢。

阅读全文 »

Java Stream基础操作

概述

jdk8之前,操作集合中的元素,一般都是通过for或者iterator去遍历,代码特别冗长。jdk8提供了Stream,让我对更加方便的操作集合

Stream构造方式

stream本身的

public static<T> Builder<T> builder();
public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b);
public static<T> Stream<T> empty();
public static<T> Stream<T> generate(Supplier<T> s);
public static<T> Stream<T> iterate(final T seed, final UnaryOperator<T> f);
public static<T> Stream<T> of(T t);
public static<T> Stream<T> of(T... values);
阅读全文 »

本文基于官方文档学习:
https://www.elastic.co/guide/en/elasticsearch/reference/7.6/query-dsl.html

Query DSL

es提供了一套基于json的完整的Query DSL(Domain Specific Language).

阅读全文 »

本文主要记录官方文档学习过程 https://www.elastic.co/guide/en/elasticsearch/reference/7.6/getting-started.html

快速开始

运行es

环境准备

由于我使用的win10,所有环境基于windows环境。
jdk:java version "1.8.0_211"
es版本:7.6.2
(这里提供一个下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-windows-x86_64.zip)
阅读全文 »

 本文主要记录官方文档学习过程
 https://www.elastic.co/guide/en/elasticsearch/reference/7.6/search-aggregations.html

简介

elasticsearch,以下简称es,是一个分布式的搜索和分析引擎,为所有类型的数据提供了实时(大概1s)搜索和分析,适用于以下场景:

  • 将搜索框添加到网站和app中
  • 存储、分析日志,指标和安全时间数据
  • 使用es作为地理信息系统(GIS)管理,集成和分析空间信息
  • 使用es作为存储引擎自动化业务工作流程
阅读全文 »

RocketMq基础

前言

最近,由于业务发展,项目准备引入消息中间件。经过一系列讨论,在加上我们业务偏金融属性,最终选择RocketMq作为消息中间件。所以,趁着有空,学习下如何使用。

阅读全文 »

redis实现分布式锁

概要

什么是锁?

多线程编程下一种机制,能够确保,在多核多线程某一个时间点只能又一个线程进入临界区代码,从而确保多线程下数据安全。

阅读全文 »

redis高级部分

redis数据结构对应业务场景

sting业务场景

  • 缓存结构体(对象)信息,一般是将其变成json字符串,然后保存
  • 计数场景,一般用来实时计数统计、库存计数、限流计数等
阅读全文 »

redis学习

Redis简介

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型

阅读全文 »

前言

redis是一个开源的key-value数据库,拥有极高的性能,支持丰富的数据结构等特点。通常作为中间件使用,是企业级应用不可或缺的一部分。通常,开发的时候,我们一般只在本地搭建一个redis服务作为开发测试使用,但是在线上一般都还是搭建集群,提供稳定可靠的服务。

阅读全文 »