开发日常
zone工作室
zone工作室,致力于前沿技术研究。工作室主要成员来自腾讯、阿里巴巴等国内顶级科技公司。
展开
-
缓存数据一致性问题方案
1、数据实时同步失效 1.1类型:增量、主动 1.2实现方式:强一致性,更新数据库之后主动淘汰缓存,读请求更新缓存,为避免缓存雪崩,更新缓存的过程需要进行同步控制,同一时间只允许一个请求访问数据库,为了保证数据的一致性还要加上缓存失效时间。2、数据准实时更新 2.1类型:增量、被动 2.2实现方式:准一致性,更新数据库后,异步更新缓存,使用多线程技术或者...原创 2019-10-05 17:08:02 · 280 阅读 · 0 评论 -
基于mybatis的轮子构造
后端多多少少会用到db,java中常用的db架构就是mybatis。先来看看mybatis=====================接口层mybatis的接口层核心类是sqlSessionFactory,SqlSession。其中SqlSession是所有数据库操作的API。Configuration是另一个配置相关的重要的类,Configuration与DefaultSqlSes...原创 2018-10-20 22:31:23 · 244 阅读 · 0 评论 -
c程序利用backtrace打印堆栈
写C程序最爽的是什么?我觉得是其中灵活的指针用法能让coder发挥各种想象力和创造力。那最郁闷的是啥?差不多就是N多指针满天飞之后程序一运行就直接segment fault了。这种运行时错误不像编译时错误有明显的错误提示,所以往往很难定位。今天看redis源代码,看见了一个比较不错的追踪此类问题的方式。Segment fault是怎样产生的一般导致segment fault错误的原因都是程...转载 2020-03-25 12:37:13 · 3103 阅读 · 1 评论 -
编译警告"struct declared inside parameter list"
近来在阅读linux-2.6.37中cgroup的相关代码,读到include/linux/cgroup.h的开头时犯了嘀咕:#include <linux/sched.h>#include <linux/cpumask.h>#include <linux/nodemask.h>#include <linux/rcupdate.h>...转载 2020-03-11 08:03:10 · 2914 阅读 · 0 评论 -
&
按位与的知识n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作用,那它有哪些应用?---------------------------------------------转载 2017-08-09 10:11:16 · 254 阅读 · 0 评论 -
json4s
最近开始使用json4s来解析和生成JSON。引入依赖dependency> groupId>org.json4sgroupId> artifactId>json4s-jackson_2.10artifactId> version>3.2.11version>dependency>1234512345构造JSON字符串例1转载 2017-05-28 17:45:00 · 2708 阅读 · 0 评论 -
git回退版本
1. 使用Git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96。2. [html] view plain copygit reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96原创 2017-05-26 21:18:24 · 260 阅读 · 0 评论 -
解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
CentOS7中执行[plain] view plain copy service iptables start/stop 会报错Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.在CentOS 7或RHEL转载 2017-05-02 09:26:06 · 1167 阅读 · 0 评论 -
idea多project
我们做项目实际中经常会遇到这样的情况,创建一个common项目(Maven项目)作为公用项目,common中有很多工具类可以供其它多个项目调用。例如,把common、service都单独拆开成独立的Maven项目,供其它的项目使用,通过jar的方式被其它项目通过Maven引用。现在web项目需要引用common和service,如果IDEA分别单独打开common、service、web项转载 2017-04-29 22:57:23 · 481 阅读 · 0 评论 -
ubuntu防火墙管理
Ubuntu附带了一个相对iptables简单很多的防火墙 配置工具:ufwufw防火墙 即uncomplicated firewall,不复杂的防火墙,繁琐部分的设置还是需要去到iptables查看防火墙状态1sudo ufw status防火墙版本1sud转载 2017-04-28 10:43:40 · 841 阅读 · 0 评论 -
idea中使用ant
Ant最初是为Java量身定做的工程构建工具,但因为其简单的XML语法和内置的任务,作为前端领域的构建工具也不失为一个明智的选择。关于Ant与前端,明河的教程有更详细的介绍:http://book.36ria.com/ant/index.html,对于Ant的常规使用方法,新手请直接学习明河的教程。下面来说说Intellij IDEA,它内置了Ant,如果你不喜欢命令行,那么在Intellij转载 2017-03-14 14:04:56 · 48973 阅读 · 0 评论 -
ubuntu提交代码到远程仓库
http://www.360doc.com/content/15/0517/10/9043924_471163377.shtml转载 2017-03-09 23:56:19 · 391 阅读 · 0 评论 -
杂记
Tomcat 6 Directory Locations on Ubuntu Server 11.04I started playing around with Ubuntu Server on a locally created virtualbox virtual machine today and used aptitude to install tomcat 6.0.28.转载 2017-08-27 17:17:56 · 356 阅读 · 0 评论 -
配vnc
VNC简介VNC (Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件。VNC可以运行在基于 UNIX 和 Linux 操作系统,并且是免费的开源软件,具有很强的远程控制能力。VNC由两部分组成:客户端的应用程序(vncviewer)和服务器端的应用程序(vncserver)。 VNC的基本运行原理类似于Windows下的远程控制软件转载 2018-01-10 10:20:54 · 262 阅读 · 0 评论 -
谈一谈https
https比http多干的事情1、客户端向服务端请求https连接获取证书(公钥)2、客户端给服务器发送(对称加密<公钥>):随机数 的密文3、客户端同时给服务端发送:(对称加密<公钥>):随机数+私钥的密文4、服务器根据公钥解密出随机数,同时解密出私钥5、客户端使用非对称加密进行数据传输,客户端使用公钥加密,服务器使用私钥解密...原创 2019-10-05 17:20:08 · 401 阅读 · 0 评论 -
[kubernetes]helm安装(tiller的坑)
https://blog.csdn.net/wzygis/article/details/84346573原创 2019-02-21 11:50:50 · 2832 阅读 · 0 评论 -
k8s单机版本安装
最近准备研究k8s现在网上很多教程都是乱写的,下面是两篇比较有意义的博文https://blog.csdn.net/liukuan73/article/details/83116271https://blog.csdn.net/u013355826/article/details/82801482 ...原创 2019-02-20 15:51:43 · 4344 阅读 · 0 评论 -
知乎request400
真的是细节很重要,就写错了一个字母纠结了半天https://coding.imooc.com/learn/questiondetail/68461.html转载 2019-02-19 18:49:32 · 288 阅读 · 0 评论 -
解决mysql数据库添加数据时报错:1366
中文数据提交到mysql数据时报了个错误:Warning Code : 1366 Incorrect string value: '\xE5\x9C\xA8' for column 'content' at row 1网上搜了好久才找到问题所在,这是由于建表的时候没有指定数据库字符集这里讲一下我的解决办法:ALTER TABLE todo CONVERT TO CHARACTER S...转载 2019-02-16 18:53:54 · 943 阅读 · 0 评论 -
ubuntu开机进入initramfs的解决办法
电脑在公司,晚上没关机,第二天启动ubuntu的时候就出现了这个情况,原因可能是由于晚上断电导致的,但是我晚上关掉虚拟机了,所以建议大家,晚上把电脑也关了。开机进入了initramfs界面,输入exit也没用。后来网上看了解决办法,有两种一、使用fsck -y /dev/sdbn命令,如果这个有用的话,最后输入reboot重启虚拟机就可以了。二、使用fsck/dev/sda1命令(我...转载 2019-01-09 18:36:32 · 2221 阅读 · 0 评论 -
ubuntu18 install onos problem:
ubuntu18 install onos problem:网上添加的bazel包源$ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list会出现问题,连接不上网,报错如下 命中:1 ...转载 2019-01-02 13:03:18 · 568 阅读 · 0 评论 -
有关arraylist之间对象赋值
package BidEngine.Test;import java.util.ArrayList;/** * Created by Administrator on 2017/2/27. */public class test { public static void main(String[] args){ ArrayList num1 = new Arr原创 2017-02-27 18:08:36 · 3087 阅读 · 0 评论 -
eclipse debug
作为开发人员,掌握开发环境下的调试技巧十分有必要。我们在编写Java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪里出现问题,经常需要增加日志,看变量的值,这样调试很麻烦。假设我每天花费1小时在调试我的应用程序上的话,那累积起来的话也是很大量的时间。由于这个原因,用这些时间来重视并了解所有使我们调试更方便的功能。那能为你省下一些时间,也将会使你的生活更安逸、轻松。首先我们需要注意转载 2017-03-09 11:09:09 · 217 阅读 · 0 评论 -
Spring Boot 注解启动的两种方式
1.@configuration @EnabeAutoConfiguration @ComponentScan[java] view plain copypackage com.example.myproject; import org.springframework.boot.SpringApplication; impor转载 2017-02-25 17:46:37 · 4159 阅读 · 1 评论 -
java的pattern
结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅转载 2017-01-15 10:58:52 · 289 阅读 · 0 评论 -
LCS最长公共子序列问题
这是一个动态规划问题当其中一个串长度为0的时候子序列为0当两个串尾字符相等时,最长子序列等于子串的最长子序列长度+1当尾字符不等时,等于两个串的子串最大的最长子序列长度上面是长度计算,计算具体子串的时候可以基于上面得到的矩阵来计算[java] view plain copy public stati转载 2016-12-30 20:32:32 · 509 阅读 · 1 评论 -
纳什均衡
纳什均衡是一种策略组合,使得同一时间内每个参与人的策略是对其他参与人策略的最优反应。假设有n个局中人参与博弈,如果某情况下无一参与者可以独自行动而增加收益(即为了自身利益的最大化,没有任何单独的一方愿意改变其策略),则此策略组合称为纳什策略。所有局中人策略构成一个策略组合。纳什策略,从实质上说,是一种非合作博弈状态。纳什均衡达成时,并不意味着博弈双方都处于不动的状态,在顺序博弈中这个均衡是翻译 2016-12-28 20:52:10 · 3898 阅读 · 1 评论 -
nexus随笔161019
Nexus介绍Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST转载 2016-10-19 10:04:32 · 209 阅读 · 0 评论 -
maven的repository随笔161019
什么是Maven仓库在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本转载 2016-10-19 10:01:48 · 278 阅读 · 0 评论 -
sbt随笔161019
SBT构建开发环境1)安装安装大体可参考http://www.scala-sbt.org/release/tutorial/zh-cn/Combined+Pages.html 中所示,我的过程如下:windows环境,下载sbt-0.13.6.zip,解压后到D:/sbt/(不要有空格的路径),然后修改D:/sbt/conf目录下的sbtconfig.txt文件,在最后加入转载 2016-10-19 09:45:50 · 245 阅读 · 0 评论 -
日常开发161017
CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。比如,cast(split_part(message,"\t",2) as bigint) as ts,sql中In 和 Where 的含义不同。应用解释如下:1、如需有条件地从表中选取、删除、更新数据时,使用Where;2、In只作原创 2016-10-19 08:40:10 · 230 阅读 · 0 评论 -
开发日常161014
hadoop fs -text /source/ad/dsp/click/invideo/20161014/_18_10.103.9.70.gz | head -n 1000 >> log01.txtCPC按点击付费,原英文为Cost Per Click 每点击成本,网络广告每次点击的费用。是做为网络广告投放效果的重要参考数据。CPC是网络广告界一种常见的定价形式。例如,关原创 2016-10-14 23:24:02 · 282 阅读 · 0 评论 -
maven几个plugins
1、maven-surefire-plugin:单元测试用。用法举例: Xml代码 plugin> groupId>org.apache.maven.pluginsgroupId> artifactId>maven-surefire-pluginartifactId>转载 2016-10-13 17:11:45 · 1547 阅读 · 0 评论 -
maven那点事
Jason Van Zyl,在 Java 十大风云人物排行榜上或许会看到他。这兄弟是干嘛的?他就是 Maven 的创始人,人们都尊称他为“Maven 他爹”。毋庸置疑,Jason 也是一个秃顶。James Gosling、Rod Johnson、Gavin King,你们可以告诉我为什么吗?您曾经是否会遇到这些问题:我们要开发一个 Java 项目,为了保证编译通过,我们转载 2016-10-13 16:54:02 · 506 阅读 · 0 评论 -
scala的list操作
list: List[Int] = List(-3, -2, 0, 1, 2, 3, 4)//获取某个元素(类似于下标, 从0开始)scala> list(1)res0: Int = -2//过滤元素(按条件, 传入的是一个 => Boolean)scala> list.filter(_>0)res1: List[Int] = List(1, 2, 3, 4)//判断是否存在sca转载 2017-03-02 13:12:51 · 5385 阅读 · 0 评论 -
scala集合数据操作
Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为例子,介绍常见的集合变换操作。一、常用操作符(操作符其实也是函数)++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个转载 2017-03-02 13:16:29 · 372 阅读 · 0 评论 -
randomsplit_scala
randomSplitdef randomSplit(weights: Array[Double], seed: Long = Utils.random.nextLong): Array[RDD[T]]该函数根据weights权重,将一个RDD切分成多个RDD。该权重参数为一个Double数组第二个参数为random的种子,基本可忽略。scala> var rd转载 2017-03-02 13:33:56 · 2928 阅读 · 0 评论 -
利用shell脚本定时完成任务
Linux系统在进行定时任务的时候,shell脚本突然停止执行了,很多用户不明所以,是什么导致shell不执行了呢?其实原因很简单,下面小编就给大家介绍下Linux定时任务shell脚本停止执行的解决方法。 原因是定时任务中是没有环境变量,在你的shell脚本中导入环境变量,在shell脚本的最上边导入环境变量 解决办法 export PATH=$转载 2017-02-25 16:24:53 · 2547 阅读 · 0 评论 -
shell中的"2>&1"是什么意思?
经常在shell脚本中,看到有"2>&1"字样的写法,到底这是什么意思呢?解决办法:1。这里的1和2指的是文件描述符。0:stdin1:stdout2:stderr2。 ">"则是重定向符号。“2>&1”的意思是:将输出到标准出错处理的信息,发送到标准输出中。3。“2>&1”的记忆:如果只有“2转载 2017-02-25 16:07:31 · 1438 阅读 · 0 评论 -
nohup
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。nohup /root/转载 2017-02-25 15:51:01 · 458 阅读 · 0 评论