【Springboot】Redis学习笔记
一、Nosql概述为什么使用Nosql 1、单机Mysql时代
90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题
数据量增加到一定程度,单机数据库就放不下了
数据的索引(B+ Tree),一个机器内存也存放不下
访问量变大后(读写混合),一台服务器承受不住。
2、Memcached(缓存) + Mysql + 垂直拆分(读写分离)网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率!优化过程经历了以下几个过程:
优化数据库的数据结构和索引(难度大)
文件缓存,通过IO流获取比每次都访问数据库效率略高,但是流量爆炸式增长时候,IO流也承受不了
MemCache,当时最热门的技术,通过在数据库和数据库访问层之间加上一层缓存,第一次访问时查询数据库,将结果保存到缓存,后续的查询先检查缓存,若有直接拿去使用,效率显著提升。
3、分库分表 + 水平拆分 + Mysql集群技术和业务在发展的同时,对人的要求也越来越高!本质:数据库(读,写)早些年MyISAM: 表锁,十分影响效 ...
Docker入门+进阶总结
本文大量参考b站kuangshen的Docker视频
Docker的常用命令帮助命令123docker version # 显示docker的版本信息docker info # 显示docker的系统信息,包括镜像和容器的数量docker 命令 --help # 帮助命令
帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/
镜像命令docker images
123456789101112131415[root@localhost /]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest bf756fb1ae65 5 months ago 13.3kB#解释REPOSITORY 镜像的仓库源TAG 镜像标签IMA ...
Docker Java项目打包实战——以hugegraph知识图谱为例
引言 本文主要针对开源图谱hugegraph做了docker打包处理,hugegraph在windows上往往不是特别方便,也很容易崩,故写此文。
准备
本地能跑通的hugegraph三件套:
hugegraph-0.10.4
hugegraph-loader-0.10.0(数据导入配件 不建议在docker内部使用,很容易内存不够,可以将本地导通的g/m/s文件夹放进hugegraph-0.10.4下即可(RockDb))
hugegraph-studio-0.10.0
依赖的编译环境只有jdk8,下载好x86 linux版即可
构建Docker镜像 新建一个构建镜像的目录(hugegraph-docker),用于存放原材料:
编写Dockerfile脚本文件:
123456789101112131415161718FROM centosMAINTAINER erickun<847473488@qq.com>COPY readme.txt /usr/local/readme.txtADD jdk-8u202-linux-x64.tar.g ...
基于leaflet的地图开发十大功能集合
Leaflet十大常用功能合集 本篇文章主要介绍基于leaflet开源地图组件开发的地图搭建,包含热力图、Geojson轨迹、marker、动画、用户标记侧栏、测量工具、搜索框、经纬线显示等功能。 本文中的代码都是经过测试无误的,关于依赖包均可在github上找到源文件,主要就是依赖导入和函数调用两部分,为了简洁,json数据一般外部导入,路径正确即可。
底图导入 地图的导入分在线和离线,在线直接调提供瓦片服务的url即可,离线请参考我的另一文章:基于leaflet的离线瓦片发布方式总结 代码如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364&l ...
基于leaflet的离线瓦片发布方式总结
离线瓦片发布 leaflet是webgis中相对成熟的开源地图组件库,包含了几乎大部分开发者的基本需求,对于一般用户而言,联网状态下采用在线的瓦片服务即可,但也有一些需要必须离线的场景,本篇博客将讲述两种离线瓦片发布的方式,其一:采用Springboot后端发布;其二:直接将瓦片资源放在文件路径下访问。
瓦片发布前的准备 在发布瓦片服务前,先要根据框定的经纬度爬取地图瓦片图片,这里采用已经开源的”全能地图下载器3.0”,选择好需要爬取的地图级别(级别越大,相当于放大程度Zoom越大)所以越大耗费的存储空间越大。
Springboot瓦片发布参考
controller下新建PublicData.java
12345678910111213141516171819202122232425262728293031323334353637383940414243package com.public_data.public_dat ...
hugegraph实战总结
hugegraph安装 hugegraph安装比较麻烦,必须版本一致:
hugegraph server是发布图数据的核心服务
loader用于导入数据
studio是hugegraph官方的图谱前端,依赖于serve
本地hugegraph启动启动hugegraph serve:hugegraph-0.10.4: 默认是8080与8182端口
相关配置:1234567891011121314# 。。省略backend=rocksdbserializer=binaryrocksdb.data_path=.rocksdb.wal_path=.store=hugegraphsearch.text_analyzer=jiebasearch.text_analyzer_mode=INDEX# rocksdb backend config#rocksdb.data_path=/path/to/disk#rocksdb.wal_path=/path/to/disk
初始化本地的rockdb以及启动serve ...
elasticsearch(下)
JD商城实战新建Springboot initializr项目
导入es、fastjson等pom下的依赖
爬虫数据问题?数据库获取,消息队列中获取,都可以成为数据源,或者爬虫
爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了)
jsoup包:用于解析网页,不能爬电影
新建一个utils包放网页解析的工具类
本质的请求是:
https://search.jd.com/Search?keyword=java
所有在Js中的方法这里都可以使用
123456789101112131415161718192021222324252627282930313233package com.kun.utils;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;public class HtmlP ...
elasticsearch(中)
关于文档的基本操作(重点):基本操作:添加数据
更新数据,将小明改成小红
PUT更新数据
version代表被改变的次数
Post,_update自由度更高,PUT必须一次性修改一个个体的全部内容,但是Post可以选择部分修改!
这个和PUT无异,要在后加_update
简单的搜索:1GET Kuangshen/user/_search?q=name:狂神说
简单的条件查询,可以根据默认的映射规则,产生基本的查询!
复杂操作搜索 select(排序,分页,高亮,模糊查询,精准查询)
1GET kuangshen/_search
输出:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899{ " ...
初探ElasticSearch+JD商城仿站实战(上)
ElasticSearch安装elasticsearch官网:elastic.co
https://www.elastic.co/cn/downloads/elasticsearch
官网下载巨慢,翻墙下载
目录
启动,访问9200:
访问9200接口:
安装elasticsearch-head:git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/
存在一个9200和9100的跨域问题!
点击链接,报跨域的错!
修改elasticsearch中config下的yaml配置文件,修改:
重启,连接成功:
把索引当做一个数据库!可以建立索引(库),文档(库中的数据!)
后面所有的查询,查询功能在Kibana中做!
了解ELK
安装Kibana
好处:ELK基本上都是拆箱即用
启动测试:点bin下的kibana
默认的kibana端口为5601
PS:注意elastic ...
Java核心技术笔记ch5
静态工厂方法类似LocalDate和NumberFormat的类使用静态工厂方法来构造对象。
12345NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();NumberFormat percentFormatter = NumberFormat.gatPercentInstance();double x = 0.1;System.out.println(currencyFormatter.format(x)); //0.1System.out.println(percentFormatter.format(x)); //10%
这里的NumberFormat类不使用构造器来完成,有两个原因:
无法命名构造器。构造器名字必须与类相同,这里希望有两个不同名字,分别得到货币实例和百分比实例。
使用构造器时,无法改变所构造对象的类型,而工厂方法实际上将返回DecimalFormat类的对象,是NumberFormat的子类
Main方法main方法也是一种静态方法。main方法不对任何对象进行操作, ...













