- 博客(36)
- 收藏
- 关注
原创 Elasticsearch Java客户端
文章目录Api Client 选择创建客户端索引操作添加索引 - 方式一添加索引二文档操作CRUD插入文档获取文档删除文档修改文档文档搜索分页搜索简单搜索高亮搜索Api Client 选择客户端优点缺点说明Java Low Level Rest Client与ES版本之间没有关系,适用于作为所有版本ES的客户端Java High Level Rest Client使用最多使用需与ES版本保持一致基于Low Level Rest Client,注意:7.15版本之
2022-02-28 16:06:59 2160
原创 Elasticsearch进阶知识
文章目录聚合查询 - aggs数据准备求和查询 - sum平均值查询 - avg去重统计 - cardinality多条件聚合查询简单统计聚合工具方法 - stats分组统计集合工具方法 - terms顶层命中 - top_hits区间查询 - range推荐搜索自动补全,前缀搜索 - suggest - prefix高亮显示聚合查询 - aggs数据准备建立索引:PUT /employee{ "mappings": { "properties": { "id": {
2022-02-28 16:05:50 1247
原创 Elasticsearch基础知识
文章目录专有名词Document - 文档Type - 类型Index - 索引Shard - 分片Replica - 副本Mapping - 映射倒排索引Analysis - 分词Analyzer - 分词器es基础命令添加索引添加索引获取索引删除索引查看所有索引:显示简化信息查看映射空索引对文档的CRUD查看 xxx 下的所有数据查看 xxx 的总条数根据指定 id = 123 查询不指定id进行数据插入(不推荐)指定id进行数据插入(不推荐)指定id进行数据插入(推荐)修改指定id的文档批量插入数据批
2022-02-28 16:05:10 1427
原创 Redis-17、哨兵模式
文章目录为什么要有哨兵哨兵的作用哨兵模式的工作流程参考文献:https://www.jianshu.com/p/06ab9daf921d为什么要有哨兵主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。哨兵的作用通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。当哨兵监测到master宕机,会自动将slave切换成master,然后
2021-09-10 10:38:24 90
原创 Redis-16、主从复制
文章目录概念作用为什么使用集群搭建集群修改配置,启动服务一主二从概念主从复制,读写分离,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master/Leader),后者称为从节点(Slave/Follower), 数据的复制是单向的!只能由主节点复制到从节点(主节点以写为主、从节点以读为主)。默认情况下,每台Redis服务器都是主节点,一个主节点可以有0个或者多个从节点,但每个从节点只能由一个主节点。一般来说,在真正的项目中,一个redis是万万不能的,因为会宕机
2021-09-07 21:37:09 123
原创 Redis-15、发布订阅
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消失。命令命令描述PSUBSCRIBE pattern [pattern…]订阅一个或多个符合给定模式的频道。PUNSUBSCRIBE pattern [pattern…]退订一个或多个符合给定模式的频道。PUBSUB subcommand [argument[argument]]查看订阅与发布系统状态。PUBLISH channel message向指定.
2021-09-07 21:27:10 88
原创 Redis-14、持久化之AOF
文章目录什么是AOFAOF配置恢复AOF文件重写持久化拓展什么是AOFAOF:Append Only File简单的说就i事将我们的所有命令都记录下来,恢复的时候将这些命令重新执行一遍以日志的形式记录每个写的操作,将Redis执行过的所有指令记录下来(读操作不记录),只做追加操作不改写文件,Redis启动之初会读取该文件重新构建数据,根据日志文件内容将指令从前到后执行一次以完成数据的恢复工作AOF保存的是 appendonly.aof优点:拥有较高的文件完整性,默认是每秒同步一次,可能会丢失一
2021-09-07 21:26:49 108
原创 Redis-13、持久化之RDB
文章目录什么是RDBRDB配置RDB触发规则恢复RDB文件什么是RDBRDB:Redis DataBase简单的说,就是在指定的时间间隔内将内存中的所有数据以快照的方式写入磁盘(Snapshot快照),恢复时将快照文件读到内存Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件,等待本次持久化过程结束之后,再用这个临时持久化文件替换掉上次持久化好的文件。整个过程中,主进程不进行任何的IO操作,确保了极高的安全性。如果需要进行大规模的数据恢复,并且数据恢复的完整性不
2021-09-07 21:05:42 114
原创 Redis-12、配置文件详解
文章目录Redis配置文件详解1. 常规命令1.1 `./redis-server /path/to/redis.conf`1.2 `include /path/to/local.conf`1.3 `loadmodule /path/to/my_module.so`1.4 `bind 127.0.0.1`1.5 `protected-mode yes`1.6 `port 6379`1.7 `tcp-backlog 511`1.8 `unixsocket /tmp/redis.sock unixsocketp
2021-09-07 21:05:23 342
原创 Redis-11、整合springboot
文章目录整合测试自定义RedisTemplateRedis工具类在springboot2.x之后,原来使用的jedis被替换成了lettucejedis:采用直连,如果多个线程操作是不安全的,如果要避免不安全,需要使用jedis pool连接池,BIO模式lettuce:采用高性能的网络框架netty,实例在多个线程中可以共享,不存在线程不安全的情况,可以减少线程数量,NIO模式参考文献:BIO、NIO和AIO的区别、三种IO的原理与用法:https://blog.csdn.net/u0105
2021-09-07 21:04:13 112
原创 Reids-10、Jedis
文章目录连接测试常用API对键的通用操作对字符串的操作对整数和浮点数操作对列表(List)的操作对集合(Set)的操作对有序集合(Zset)的操作对哈希(Hash)的操作排序操作事务操作使用java操作Redis的中间件(JAR),Jedis是Redis官方推荐的java连接工具。连接测试创建Maven项目,添加相关依赖:<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency>
2021-09-07 20:46:18 103
原创 Redis-9、事务
文章目录事务的四大原则:ACID1、原子性(Atomicity)2、一致性(Consistency)3、隔离性(Isolation)4、持久性(Durability)Redis对于事务的注意事项一次简单的事务执行Redis对于事务中错误的处理监控!Watch事务的四大原则:ACIDACID原则:1、原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。2、一致性(Consist
2021-09-07 20:05:09 107
原创 Redis-6、Hash(哈希)
基本命令Redis中的Hash相当于Java中的Map集合,key-value,本质和string类型没有太大区别插入,取出127.0.0.1:6379> hset user name zhangsan # 往 user 中插入一个 name属性,值为 zhangsan(integer) 1127.0.0.1:6379> hset user name lisi # 往 user 中插入一个 name 属性,值为 lisi(integer) 0127.0.0.1:6379> h
2021-09-07 20:04:44 102
原创 Redis-5、Set(集合)
基本操作Set 和 java中的set是基本一致的,不允许出现重复的值插入127.0.0.1:6379> sadd name zhangsan(integer) 1127.0.0.1:6379> sadd name lisi(integer) 1127.0.0.1:6379> smembers name1) "zhangsan"2) "lisi"查看127.0.0.1:6379> sadd name zhangsan(integer) 1127.0.0
2021-09-07 19:10:18 105
原创 Redis-4、List(列表)
文章目录基本操作右侧插入 - 尾插法 rpush删除list中的值 lpop、rpop通过索引获取 lindex获取list的长度 llen移除指定的值 lrem截取数据 ltrim更新指定下标的值 lset使用场景Redis中所有有关list的操作命令都是『L』开头基本操作##左侧插入 - 头插法 lpush127.0.0.1:6379> lpush l1 1 # 从左边向l1中插入值1(头插法)(integer) 1127.0.0.1:6379> lpush l1 2 # 从
2021-08-30 21:37:39 201
原创 Redis-3、String(字符串)
文章目录常用命令进阶命令思路拓展String常见使用场景常用命令append key value # 在原有的字符串后面追加,如果当前key不存在,就相当于set keystrlen key # 获取字符串的长度incr key # 做+1操作(只适用于字符串是纯数字状态下,+1之后这个数据依然是字符串类型)incrby key 10 # 指定增量decr key # 做-1操作decrby key 10 # 指定减量getrange key 0 5 # 截取字符串,相当于java的subS
2021-08-30 21:37:07 120
原创 Redis-2、基础知识、常用命令
文章目录基础知识常用命令Redis-key基础知识1、Redis默认有16个数据库,默认使用的是第0个数据库,可以通过命令select 5切换到第5个数据库2、为什么使用6379端口?明星名字在九宫格打出来的数字,好无聊。。。3、 Redis是单线程的,基于内存操作,CPU并不是他的性能瓶颈,Redis的性能瓶颈是根据网络带宽和机器内存4、Redis命令是不区分大小写的,但是key区分大小写,比方说 name 和 Name 就是两个key127.0.0.1:6379> set name s
2021-08-30 21:36:10 153
原创 Redis-1、linux环境安装
文章目录前置下载Redis安装包安装Redis前置Linux版本:CentOS 6.10 64位服务器保证 yum、wget、gcc可用,如果不可用请自行安装安装过程需要的安装包Redis:http://download.redis.io/releases/redis-6.0.6.tar.gzgcc:http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz下载Redis安装包cd ~mkdir softcd softwget http:
2021-08-30 21:35:26 110
原创 1、CLASS的生命周期
文章目录Class的生命周期类加载器 - ClassLoader类加载过程-双亲委派自定义类加载器Class的生命周期loading:加载linking:verification:验证,验证的class文件是否符合JVM规范,比如java的class文件开头的cafe babepreparation:准备,这里的准备是对于静态变量给定默认值resolution:解析,这个我还不知道怎么解析。。。initializing:初始化,初始化了静态变量,这里会赋值,同时会调用静态方法知
2021-08-30 21:33:12 257
原创 SpringDataJPA - 4:多表操作
表关系 一对一 一对多 一的一方:主表 多的一方:从表 外键:需要『从表』中存在一个字段,保存『主表』的主键 多对多 中间表:最少由两个字段组成,这两个字段作为外键指向两张表的主键,同时又组成了联合主键,通过这两个外键,决定两张表的数据是否唯一 实体类中的关系 包含关系 继承关系首先准备两个表:客户表、联系人表,一个客户对应多个联系人,DDL见下:create table cst_cu
2021-08-08 10:08:29 272
原创 SpringDataJPA - 3:动态查询(Specifications)
@TOC~~~javaDAO接口继承的接口中有一个接口:JpaSpecificationExecutor,在这个接口中有几个关键方法和对象对象:public void specTest3() {// 构造查询条件,null表示无条件Specification spec = null;// 构造分页对象,当前第一页,每页2条Pageable pageable = PageRequest.of(0, 2);// 执行查询操作Page page = dao.findAll(spec, pageab
2021-08-08 10:07:49 254
原创 SpringDataJPA - 2:复杂查询
首先使用 spring data jpa ,DAO接口需要继承JpaRepository和JpaSpecificationExecutor两个接口操作数据库常用的两个注解@Query和@Modifying@Query此注解用在接口方法上用来声明方法将进行查询value:查询需要执行的JPQL语句或者SQL语句nativeQuery:是否使用本地查询 值:fasel(使用jpql查询) | true(使用本地查询:sql查询) /** * 根据占位符:位置 进行查询
2021-08-08 10:06:49 306
原创 SpringDataJPA - 1:快速入门
以下内容均以localhost数据库sql_demo为例,表名:user_demomaven相关坐标 <properties> <spring.version>5.0.2.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <slf4j.version>1.6.6</slf
2021-08-08 10:06:00 116
原创 MybatisPlus - 6、条件构造器
条件构造器十分重要,可以实现复杂sql具体构造器方法请参见官方文档:mybatis-plus 条件构造器体验1:@Testvoid contextTest() { // 查询名字不为空 并且 邮箱不为空 并且 年龄大于等于12 QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.isNotNull("name") .isNotNull("email")
2021-08-06 16:25:02 85
原创 MybatisPlus - 5、性能分析插件
在开发中,我们会遇到一些慢sql,一般可以通过压测,druid进行分析,mybatis-plus也提供了性能分析插件,如果超过一定时间,就停止运行1、导入插件 // sql执行效率插件 @Bean @Profile({"dev", "test"}) // 设置只有dev、test才开启,保证运行效率 public PerformanceInterceptor performanceInterceptor() { PerformanceInterceptor
2021-08-06 16:24:29 276
原创 MybatisPlus - 4、CRUD拓展
文章目录新增,插入操作更新操作自动填充方式一:数据库级别(工作中不允许操作数据库的时候,这个方法不适用)方式二:代码级别(使用mybatis plus,这个方法更推荐)乐观锁查询操作批量查询条件查询map分页查询逻辑删除新增,插入操作首先看这样一段简单的插入代码: @Test void insertTest() { User user = new User(); user.setName("zhangsan"); user.setAge(5); user.se
2021-08-06 16:24:00 189
原创 MybatisPlus - 3、配置日志
现在所有的日志都是不可见的,我们希望知道它是怎么执行的,所以我们需要配置日志!APP上线可以去掉日志,因为日志打印是需要时间的# 配置日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl...
2021-08-06 16:21:43 201
原创 MybatisPlus - 2、快速入门
文章目录创建数据库 `mybatis_plus_demo` 创建 `user` 表导入需要的依赖配置项目**编写pojo**编写Mapper接口测试创建数据库 mybatis_plus_demo 创建 user 表DROP TABLE IF EXISTS user;CREATE TABLE user(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) N
2021-08-06 16:19:58 119
转载 MybatisPlus - 1、概述
需要的基础spring、springMvc、mybatis为什么要学习plus呢可以节省大量工作时间,所有的CURD都可以自动完成,其实就是偷懒官网:https://mp.baomidou.com/特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件.
2021-08-06 16:18:59 152
原创 HashMap底层原理
文章目录HashMap底层原理剖析JDK1.7实现基本实现思想链表的使用时机JDK1.8的优化红黑树的加入手撕鬼子环节:手写一个HashMap多线程下出现的问题为什么HashMap是线程不安全的?HashTable是线程安全的,但是为什么不用呢?线程安全的ConcurrentHashMapHashMap底层原理剖析前置知识数据结构:数组、链表、红黑树算法:hash算法看图说话:面试官:你能说一下hashmap的底层实现原理吗?回答:hashmap底层实现是数组+链表,回答完毕,猝!!!这
2021-08-06 16:00:47 366 1
原创 git速查表
搞一个git的速查表过来,备用。。。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ra04IwnP-1624636002815)(/Users/sunlibin/Library/Application Support/typora-user-images/image-20210625234618269.png)]...
2021-06-25 23:48:14 100
原创 ORACLE关于scott用户下相关表的sql练习
文章目录EMP员工表DEPT 部门表BONUS 奖金表SALGRADE 薪资等级表下面是一些sql练习基础sql练习以上函数练习多表联查oracle 默认有一个可以用来练习的用户:scott ,在这个用户下有4张表:EMP、DEPT、BONUS、SALGRADE,这4张表中 SALGRADE、EMP和DEPT会有一些数据可以拿来练习基础sql和函数,网上一搜也有好多,但是相关联的就有解锁scott用户、切换各种麻烦事情,下文将给出建表和数据,是不是在scott下无所谓了,不BB,看代码吧EMP员工表E
2021-06-25 23:35:33 329
原创 Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结
title: Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结文章目录title: Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结创建表:create table 表名 (字段名1 字段类型 默认值 是否为空 ,字段名2 字段类型 默认值 是否为空,字段名3 字段类型 默认值 是否为空,…);创建一个user表:create table user (id number(6) primary key, —主键name varc.
2021-06-25 23:33:26 179
原创 怎么理解socket ?
看了很多的博文,各有各的好,自己也理解了一点。打个比方,现在你的书包里有一台笔记本电脑(server),一个耳机(client),一个u盘(clinet),一个鼠标(client),socket就可以想象成笔记本电脑上的usb接口、音频接口,耳机需要连接到电脑听歌,需要用到音频接口,u盘需要链接电脑拷贝资料,需要用到usb接口,鼠标需要链接电脑才可以操作系统光标,需要用到usb接口,socket...
2019-05-14 18:18:57 1199
转载 HTTP长连接、短连接究竟是什么?
HTTP长连接、短连接究竟是什么?HTTP协议与TCP/IP协议的关系如何理解HTTP协议是无状态的什么是长连接、短连接?TCP连接TCP短连接TCP长连接长连接和短连接的优点和缺点长连接短连接操作过程什么时候用长连接,短连接?HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协...
2019-05-14 15:55:40 277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人