mongo3.2 数组索引作为联合索引的一部分导致的范围查询问题

摘要在mongo索引一文中有介绍过mongo数组索引,这边主要介绍在mongo3.2中遇到的一个将array字段作为一个联合索引的字段,然后进行非array字段的范围查询遇到的问题。问题post collection{ "_id" : ObjectId("5972c7b0a98a215bd51b9f9a"), "son" : [ 1, 2...
阅读(174) 评论(0)

mongo driver类加载导致的错误

摘要一次类加载导致的错误,之所以要记录下来,是因为错误的发现不是在本地开发环境或者预部署环境,而是在生产环境。这应该是个易于重现的问题,但是不知道为什么直到生产环境部署时才报错。问题Unsatisfied dependency expressed through constructor parameter 3: Could not convert argument value of type [co...
阅读(165) 评论(0)

spring-data-mongo 实现aggregation

摘要mongo aggregation是mongo 的一个轻量级的map-reduce框架,可以实现一些count,sum,groupby的聚合。本身的意义就在于减少查询次数,将原本需要客户端的多次查询能够整合到db端的基于pipeline的查询。这样带来的好处就是减少请求数据库次数,坏处就是这个查询占用的数据库内存大,时间查,有可能拖垮其他查询。这个在本篇文章不讨论。概述常用的阶段函数 $matc...
阅读(399) 评论(0)

Warning maven relocated xml-apis to 1.0.b

maven 依赖在maven项目中,一些基础的jar包被引用多次是很常见的事情。maven选择jar的版本是基于 - 依赖深度浅的 比如C项目依赖xml.jar。C依赖的B也引入了xml.jar。那么优先选择C中指定的 - 如果依赖深度一样,第一次依赖的jar被选中实际项目开发,一般是exclude掉B项目中的xml.jar,在C项目中显示指定xml.jar的版本。...
阅读(241) 评论(0)

redis scan 命令遇到的坑总结

摘要本文主要是介绍使用redis scan命令遇到的一些问题总结,scan命令本身没有什么问题,主要是spring-data-redis的问题。需求需要遍历redis中key,找到符合某些pattern的所有keys。第一反应当然是KEYS "ABC* 可以找到前缀是ABC的所有KEYS,时间复杂度O(N)。可以使用,但是在生产环境中,这么使用肯定是不行的,因为生产环境的key的数量比较多,一次查询...
阅读(348) 评论(0)

Elastic Search初识之吐槽

摘要对于Elastic Search的初始印象就是全文本搜索,与SOLR是竞品。它与其他的存储型数据库有何区别,为什么其他数据库已经能够提供文本搜索功能了,还需要ES等一系列问题都是心中的困惑。这篇文章主要就是总结这些问题以及Elastic Search的概括介绍ES资源ES 下载:https://www.elastic.co/downloads/elasticsearch ES 文档: http...
阅读(181) 评论(0)

cassandra cql解析

摘要CQL相比较于SQL有很多的限制,原因在于cassandra是为大数据存储设计的,而它的部署模式又都是基于分区方式的,不像mongo还有复制集这个小规模的数据库集群设计,当数据量大的时候再进行分片。为了提供检索效率,所以在CQL语法上做了限制,避免低效的查询语句。cassandra的数据是根据partition key做hash计算后分布到各个节点的,扫描各个节点的效率是很低的。所以cassan...
阅读(652) 评论(0)

MySQL索引介绍

摘要本文主要介绍MySQL数据库的索引,之前有写过mongo index, cassandra index,总体来说,mongo index与MySQL会比较类似,因为都是基于B树,Cassandra的差的多点。有兴趣的可以对比着看看存储引擎MySQL可选的存储引擎有十几种,主要有两种,一种是MyISAM,一种是InnoDB。5.7以后的默认存储引擎是InnoDB。Oracle也推荐在大部分场合下...
阅读(401) 评论(0)

cassandra 堆外内存管理

为什么需要堆外内存呢单有一些大内存对象的时候,JVM进行垃圾回收时需要收集所有的这些对象的内存也。增加了GC压力。因此需要使用堆外内存。java 分配堆外内存org.apache.cassandra.utils.memory.BufferPool也有相应的实现方法 private static ByteBuffer allocate(int size, boolean onHeap) {...
阅读(585) 评论(0)

生产环境中学习Redis

摘要看到这篇文章,很有借鉴意义,因此写个读书笔记,不算是翻译。想要深入了解,请看原文http://tech.trivago.com/2017/01/25/learn-redis-the-hard-way-in-production/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website使用场景旅店搜索应用,使用redis来做缓...
阅读(263) 评论(0)

mongo connections url string 的问题

摘要driver 连接Mongo DB的url其实很简单,就是几个变量拼接成一个url,和关系型数据库没什么不同。但是因为mongo有单个instance和replicaSet不同的部署策略,还有mongo 节点有主从之分。所以配置参数容易混淆。另外Mongo NodeJs Driver版本不同,居然也会有坑。这里作个简单介绍正文mongo client 连接到db字符串格式:mongodb://u...
阅读(495) 评论(0)

redis 初识

架构shardingredis 集群是主从式架构,数据分片是根据hash slot(哈希槽来分布) 总共有16384个哈希槽,所以理论上来说,集群的最大节点(master) 数量是16384个。一般推荐最大节点数量在1000个左右。数据到shard的映射是根据传过来的key,CRC16生成值,然后对16834个哈希槽取模。目的就是数据能够均匀分布。 为。没有mongo cluster 中mon...
阅读(186) 评论(0)

cassandra读源码---Streaming

前言cassandra的很多过程需要网络传输模块,需要在各个节点直接发送文件。包括加入节点,删除节点引起的不同节点的负责ring环的key值发生了变化,导致sstable需要在各个节点中移动。整体过程两个节点会创建一个相似的对称的StreamSession。主要是下面四个阶段。一个stream会话包含了多个文件,每个节点既有发送task,也会有接收task.涉及到的可参看的java知识有 1. 如...
阅读(347) 评论(0)

读Cassandra源码之并发

java 并发与线程池java并发包使用Executor框架来进行线程的管理,Executor将任务的提交与执行过程分开,直接使用Runnable表示任务。future获取返回值。ExecutorService 继承了Executor接口,提供生命周器的管理,包括运行,关闭,终止三种状态。ThreadPoolExecutor ThreadPoolExecutor 是ExecutorService的...
阅读(761) 评论(0)

java程序员的NodeJS初识篇

摘要作为一个一直用java来写后端的程序员用NodeJS来写后台,实在不是很爽。这里记下这两个月的NodeJS学习所遇之坑,与java转NodeJS的同仁共勉。学习时间不长,若有理解错误,望指正。一.JS基本exports,module.exports exports 就是module.exports的引用 在module 被计算之前,会将module.exports的值赋给exports 当mod...
阅读(758) 评论(0)
98条 共7页1 2 3 4 5 ... 下一页 尾页
    关于我
    毕业于南京农业大学
    先后工作于南京富士通,上海IBM,目前就职于杭州酷家乐
    github主页
    个人站点
    cassandra 学习群:104822562
    数据库学习交流群:604433822
    个人资料
    • 访问:139725次
    • 积分:2389
    • 等级:
    • 排名:第14420名
    • 原创:87篇
    • 转载:1篇
    • 译文:10篇
    • 评论:32条
    微博
    博客专栏
    最新评论