- 浏览: 159960 次
- 性别:
- 来自: 北京
最新评论
文章列表
加上了@Document注解之后,默认情况下这个实体中所有的属性都会被建立索引、并且分词。
@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {
String indexName();//索引库的名称,个人建议以项目的名称命名
String type() default "";//类型,个人建议以实体的名称命名
short shards() default 5 ...
/usr/local/mysql/bin/mysqlbinlog --base64-output=decode-rows -v mysql-bin.000044 mysql-bin.000045 --start-datetime='2016-10-08 18:00:00' --stop-datetime='2016-10-08 18:25:00'|egrep '### (DELETE|INSERT|UPDATE)'|awk -F### '{a[$2]++}END{for (j in a) print j","a[j]}'|sort -t ',' -k 2 -n -r|gr ...
history.pushState(data[,title][,url]);//向历史记录中追加一条记录,data是一个js对象,可以是任何格式的json数据,title参数暂时不起作用,我亲自试了也确实如此。参数url是指地址栏中的地址值,不填则保持当前url
history.replaceState(data[,title][,url]);//替换当前页在历史记录中的信息。参数与上面一致。
history.state;//是一个属性,可以得到当前页的state信息。
window.onpopstate;//是一个事件,在点击浏览器后退按钮或js调用forward()、b ...
public function removeEmoji($text) {
$clean_text = "";
// Match Emoticons
$regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
$clean_text = preg_replace($regexEmoticons, '', $text);
// Match Miscellaneous Symbols and Pictographs
$re ...
前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。
上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?!在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?!等等,相信大家或多或多少都能碰到相似情景。
这些问题本质上都可以抽象为:当一个表数据更新后,怎么保证另一 ...
1 二阶段提交协议
一般分为协调器C和若干事务执行者Si两种角色:
当执行某一事务T的所有站点Si都通知C事务执行完成,C即启动二阶段提交协议。
1.首先C向所有Si发<prepare>消息(C先将<prepare>消息写到本机日志),Si收到<prepare>消息后,根据本机T的执行情况,如果成功返回<ready T>,不成功返回<abort T>。(返回前都应把要返回的消息写到日志里)
2.C收集完所有Si的返回消息后(或经过一个超时周期后),如果都返回的是<ready T>,则事务成功 ...
注解
适用的数据类型
说明
@AssertFalse
Boolean, boolean
验证注解的元素值是false
@AssertTrue
Boolean, boolean
验证注解的元素值是true
@DecimalMax(value=x)
BigDecimal, BigInteger, String, byte,short, int, long and the respective wrappers of the primitive types. Additionally supported by HV: any sub-type of Number andCharSe ...
在MySQL proxy 6.0版本 上面如果想要读写分离并且 读集群、写集群 机器比较多情况下,用mysql proxy 需要相当大的工作量,目前mysql proxy没有现成的 lua脚本。mysql proxy根本没有配置文件, lua脚本就是它的全部,当然lua是相当方便的。那么同样这种东西需要编写大量的脚本才能完成一 个复杂的配置。而Amoeba只需要进行相关的配置就可以满足需求。
假设有这样的使用场景,有三个数据库节点分别命名为Master、Slave1、Slave2如下:
Amoeba: Amoeba <192.168.14.129>
Master: Mas ...
@RequestMapping(value = "/apiheader/address", method = POST, headers = "X-API-Version=v1")
public void methodV1(){
.....................................
}
.....................................
版本2
@RequestMapping(value = "/apiheader/address", method = POST, hea ...
MyCAT 性能调优指南
JVM调优: 内存占用分两部分:java堆内存+直接内存映射(DirectBuffer占用),建议堆内存 适度大小,直接映射内存尽可能大,两种一起占据操作系统的1/2-2/3的内存。 下面以服务器16G内存为例,Mycat堆内 ...
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="htt ...
@Test public void Testregexp(){
Pattern p = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\-\\s]?((((0?" +"[13578])|(1[02]))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))" +"|(((0?[469])|(11))[\\-\\-\\s]?((0?[1-9])|([1-2][0-9])|(30)))|" +" ...
java中基本类型、指针是存放在栈中,new 对象是存放在堆中,唯一不同的是String类型的数据存放在:常量池中
一个初始时为空的字符串池,它由类 String 私有地维护
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此String 对象添加到池中,并且返回此String 对象的引用
String 源码:
public final class String
implements java.io.Serializable, Comparable&l ...
memcache: add set replace的区别:
add :如果缓存中存在key的值,那么调用失败
replace:只对已经存在的key值有效
set: 当存在key时,作用与replace相同,如果不存在key则作用与add相同
memcache中increment、decrement用法
Memcache::increment()将指定元素的值增加value。如果指定的key 对应的元素不是数值类型并且不能被转换为数值, 会将此值修改为value。
Memcache::decrement()方法将元素的值减小value。 类似 ...
1 基本用法
Splitter.on(',') .split(str); 拆分字符串
import com.google.common.base.Splitter;
public class GuavaSplitterExample {
public static void main(String[] args) {
String str = "a,,b, c,,,d";
Iterable<String> result = Splitter.on(',')
.split(str);
...