mongodb学习笔记--实现自增ID序列

  在某些特定的场景下,我们可能需要利用数据的自增id特性来作为数据集的自增排序查找等操作。或者相同的数据分布在多份存储上。

并且存在对条数据需要通过这个id进行关联,类似于外键特性,这就需要将id和数据分离。

阅读更多

Elasticsearch实践(3)-api分页查询

elasticsearch系列:

(1)Elasticsearch实践(1)-搭建及IK中文分词

(2)Elasticsearch实践(2)-索引及索引别名alias

(3)Elasticsearch实践(3)-api分页查询

es分页有两种,from size浅分页和scroll深分页,这里对这两种分页都做了实现,使用的是es的java api。from size类似于mysql的limit分页,from偏移,默认为0,size为返回的结果数量,默认为10。在数据量不大的情况下一般会使用from size,数据量大的时候效率比较低,而且很费内存,每次会把from*size条记录全部加载到内存中,对结果返回前进行全局排序,然后丢弃掉范围外的结果,重复这样的操作会导致内存占用过大而使es挂掉,并且受数据条数限制,10000条,需修改索引限制。🤔

阅读更多

Elasticsearch实践(2)-索引及索引别名alias

我们都知道es效率如此高主要和索引是分不开的,需要将每一条数据建立索引,创建索引时数据字段也是你插入时的样子,索引中包含了数据的属性字段。而且创建索引也比较耗时(当然了,肯定比插入关系型数据库中更快😁),但是毕竟每一条数据都要建一次,数据量到达千万级亿级时,时间不是很乐观。🤔

💡想像这样一个场景,产品上线一段时间后,由于产品需要,要将某个字段类型改变,比如需要将某个long型字段改成string类型,直接改会类型报错,查阅官方文档可知,es是不支持索引的更新操作的,需要对所有已有数据的所有field进行reindex,这意味着,需要停止服务进行重建索引操作,停服是最不想看到😭,这时如果你当初建了索引别名,你会感谢你当初使用别名的决定,为何要用别名alias?🤷

阅读更多

Elasticsearch实践(1)-搭建及IK中文分词

🔍近期在做商品搜索优化,对比了Solr与Elasticsearch的区别,两者都是基于Lucene实现的封装,但es在数据量越大的情况下实时检索性能优于solr,更适用于实时商品搜索,于是选用了es,下面介绍elasticsearch搜索引擎的搭建及使用,这里使用的是2.2.1的es版本,以及1.8.1的ik分词版本。

阅读更多

Packet for query is too large (84 > -1).

ibatis工程使用resin配置mysql出现Packet for query is too large (84 > -1).错误。

windows下的resin配置连接mysql,常用的安全的做法是将数据库信息配置到conf目录下的resin.xml文件中。

阅读更多

zookeeper提示Unable to read additional data from server sessionid 0x

配置zookeeper集群,一开始配置了两台机器server.1和server.2。

配置参数,在zoo.cfg中指定了整个zookeeper集群的server编号、地址和端口:

server.1=10.10.16.151:2888:3888
server.2=10.10.16.234:2888:3888

然后为这两个个节点创建对应的编号文件,在/tmp/zookeeper/data/myid文件中。如下:

阅读更多

恒大 VS 上港

⚽很少看中超,三线伪球迷,偶得一张恒大对战上港的票,亚冠联赛1/4决赛“中国德比”第二回合,非常值得一看。于是和峰哥守情瞪着小二轮儿就往天河体育中心赶。

阅读更多