6 阿卧--

尚未进行身份认证

不懂就问,不会就学。好好做学问

等级
TA的排名 9k+

数据库和缓存双写一致性方案

常用的双写一致性策略通常我们使用数据库和缓存的套路是这样的。查询先查询缓存,如果不存在;则查询数据库,并更新缓存。更新更新策略则有很多版本,大体可以总结为以下三种:方案一:先更新数据库,再更新缓存方案二:先清除缓存,再更新数据库方案三:先更新数据库,再清除缓存分析三种方案的利弊先更新数据库,再更新缓存假设我们有这么一个场景:线程A更新数据库。如: (update A...

2019-12-04 22:02:33

【elasticSearch学习与实践】elastic stack环境搭建(7.3)

elastic stack的介绍在elastic架构下面有:elasticsearch、kibana、logstash(俗称ELK)和beats。他们的介绍依次如下:我对elastic stack的理解图片来自网络elasticsearch是一个分布式搜索引擎,通过指定的_index可以快速搜索到需要的内容。通常用于日志搜索和电商商品搜索等大数据搜索。它的优点:支持re...

2019-09-23 20:21:26

mac上常用软件的下载

两个常用下载网站http://www.xclient.infohttp://www.lapulace.comphotoshop下载https://xclient.info/s/adobe-photoshop-cc.html#versionspremiere下载https://xclient.info/s/adobe-premiere-pro-cc.htmloffice...

2019-06-02 11:24:28

【Redis】Redis布隆过滤器

缓存击穿介绍什么是缓存击穿我们通常使用redis作为数据缓存,当请求进来时先通过key去redis缓存查询,如果缓存中数据不存在,需要去查询数据库的数据。当数据库和缓存中都不存在的数据来查询时候,请求都打在数据库的请求中。如果这种请求量很大,会给数据库造成更大的压力进而影响系统的性能。解决这类问题的方法方法一:当DB和redis中都不存在key,在DB返回null时,在redis中...

2019-05-18 08:57:59

【分布式锁】Redis实现分布式锁

在分布式应用中常会遇到并发问题,例如:一个用户在同一之间内创建多个订单;执行订单修改状态,需要查询订单并更新订单状态,这是非原子性操作,存在并发问题。以上的问题需要通过分布式锁来解决。常用的分布式锁有两种分别是基于redis和zk来实现的,下面会分别介绍一下。redis分布式锁使用分布式锁的流程如下所示:下面主要基于单节点的redis服务进行分析:tryLock通常使用setnx(se...

2019-05-12 11:11:30

junit单元测试web项目的方法

在项目开发中,常通过junit单元测试来测试自己方法逻辑。下面主要展示,junit测试web项目的方法步骤。包括service、dao层的方法和使用Mock测试cotroller层的方法。以下测试用例时基于公司的项目展示的,所以不便于粘贴所有的源码junit测试环境依赖<dependency><groupId>junit</groupI...

2019-02-23 13:22:46

java的lambda表达式用法

lambda表达式的用法lambda的三个组成部分一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数IOperation operation = (param) -> ADD_NUM + param;一个箭头符号:->Collections.sort(arrayList,(s1,s2) -> s1.getAge() >= ...

2018-03-19 19:19:11

jvm虚拟机模型实例演示

通过一个代码实例,来说明变量,方法,对象和类之间在jvm所存放的位置。public class JvmHeapStackDistribute { public static void main(String[] args) { Program program = new Program("java"); program.sayHello();...

2018-03-13 15:41:25

idea创建maven工程的spark项目

idea工具可以创建maven工程的spark项目,今天就试着做了一下,然后写了一个基于集合创建RDD的小的demo,并且遇到了不少的坑,在这里总结一下。创建maven工程的spark项目 这个项目是机遇scala语言进行开发的 下面是截图步骤 基于集合创建RDDobject RddBasedOnCollections { de

2017-12-17 17:36:00

windows环境下安装spark

前言 花了近两周的时间学习了scala的语法,然后就迫不及待的想要玩一下spark的开发了。这里先介绍一下spark在windows环境下的安装步骤和方法。 因为spark大数据的计算肯定是基于分布式集群的方式才能发挥其巨大的作用,所以,在windows环境下学习大数据,只是纸上谈兵的方式。因为环境的限制,所以只能在现有的电脑上进行大数据的学习,先了解spark的API吧!先把原

2017-11-20 22:04:51

Scala的模式匹配和正则表达式

Scala的模式匹配 模式匹配类似于switch case的含义 模式匹配作用于方法或函数上 模式匹配作用于类上–>样例类 模式匹配可以匹配固定类型的参数 match和case之间联合使用 case 1 => "one" 表示匹配为1,就返回onedef matchStr(x : Int):String = x match {

2017-11-16 20:43:46

5. scala集合(二)

scala元组 元组与其他集合的区别在于,一个元组中可以存放不同类型的元素. 元组也是不可变的 创建元组(Tuple) Tuple1和Tuple2和Tuple3…等的区别 tuple2可以存放两个元素,tuple3可以存放三个元素 最多可以存放22个元素 Tuple1 可以是1-22个元素中的任意一个或多个,Tuple22 只能是22

2017-11-15 20:57:57

6.Scala的面向对象

类(class) 一个scala源文件中可以有多个class修饰的类。 可以使用new关键字实例化对象 与java不同的是,class中可以传递参数,叫做类参数;它作用于整个类 一个简单的classclass Person(name : String , age : Int){ var pName = name; private var pAge

2017-11-15 20:56:57

4. scala的集合

List集合的创建指定泛型的创建通过List[String]方式来指定是String类型```def listType(): Unit ={ val listl : List[String] = List("A","B","C") println(" list is ") for (l <- listl) print(" " + l)

2017-11-14 21:29:58

3. Scala数组

Scala数组和集合数组数组的创建和赋值声明类型 数组必须用val来修饰,表示不可变的数组 new Array[String](10) 是用来创建一个String类型的数组,并开辟长度为10的空间 arrays(0)给第0个元素赋值 println("打印一串数组,声明其类型,方式一:") //@1 创建方式一 val

2017-11-13 21:38:10

linux环境指令总结(针对服务器环境部署的指令)

前言在使用linux系统进行服务部署时候,难免会用到常用的linux指令。但是有时候,有些指令不知道如何使用,最近也是在玩部署的时候发现自己对linux指令的不了解,但是最后通过查资料也学到了不少的linux常用指令。在这里做一个总结吧,难免以后会再用到。ssh登录语法说明(p为小写)ssh -p 端口 用户名@IPssh -p 5188 support@127.0.0.1

2017-11-10 10:46:15

1. scala安装和整合idea

目标是学习spark大数据的相关知识,在此之前需要了解scala的基本语法,并能够达到熟练使用的目的。 scala和java类似也是基于jvm的一个开发语言。所以在这里先介绍一下scala的安装,后续还有关于scala的学习历程的分享!安装过程系统环境 win10 64位java环境也配置JDK要求在1.8以上下载地址 http://www.oracle.com/technetwork/j

2017-11-09 20:31:15

2. Scala的函数和循环判断语句

前言学习了scala和idea的整合,那么以后就用idea来练习scala的基本用法了。并且还可以通过idea的反编译来读取scala一些方法的内部实现,十分方便! 在了解scala的语言时,也十分有必要去学习scala的命名规则习惯、scala支持的类型、scala的运算符等操作,我是通过http://www.yiibai.com/scala/scala_functions.html来学习

2017-11-09 16:09:17

springboot配置Redis主从服务

今天学了一下springboot配置redis的主从服务器。根据一主二从三哨兵的原则来搭建一个分布式的缓存服务。主要还是针对redis的一些配置。下面与大家分享一下!附上对redis的官方介绍http://redis.majunwei.com/topics/sentinel.html要想通过springboot搭建redis主从服务,就要先使用redis配置一个主从服务。测试red

2017-09-25 19:55:06

Springboot中Spring-cache与redis整合

也是在整合redis的时候偶然间发现spring-cache的。这也是一个不错的框架,与spring的事务使用类似,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作。如果这些注解不满足项目的需求,我们也可以参考spring-cache的实现思想,使用AOP代理+缓存操作来管理缓存的使用。在这个例子中我使用的是redis,当然,因为spring-cache的存在,我们可以整合多样的缓

2017-09-24 18:42:00

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。