数据库
文章平均质量分 78
嫩草终结者
一个渴望成为大牛的小程序猿
展开
-
Mongodb中distinct性能问题
最近用mongodb的distinct做了以下的一个测试:表名:usertable表中document总数:2000w左右字段名:符合 userid = "张三" 条件的有100w条记录,有索引 符合 region="华南",且floor="3层" 条件的记录有90w条,且有复合索引测试一: ...原创 2019-08-06 19:33:31 · 3335 阅读 · 1 评论 -
mongo+spring配置文件
applicationContext.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:con原创 2018-01-12 09:12:11 · 596 阅读 · 0 评论 -
搭建高可用mongodb集群(二)—— 副本集
在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。主节点挂了能否自动切换连接?目前需要手工切换。主节点的读写压力过大如何解决?从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数转载 2016-12-03 00:26:36 · 477 阅读 · 0 评论 -
mongodb 设置自动删除过期数据
Time To Live(TTL) 集合MongoDB 2.2 引入一个新特性–TTL 集合,TTL集合支持失效时间设置,或者在某个特定时间, 集合自动清除超时文档,者用来保存一个诸如session会话信息的时候非常有用。如果想使用TTL集合,用用到 expireAfterSeconds 选项mongo官网使用文档设置方法:Expire Document转载 2017-05-10 09:09:16 · 8065 阅读 · 0 评论 -
MongoDB创建过期索引的三种方法
1,db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )其中,log_events是表名,expireAt是索引所在的字段,为Date格式,expireAfterSeconds表示0秒之后过期。该方式,可以传入一个过期时间到数据库中,到了指定时间,数据即删除2,db.log_events.原创 2017-05-15 17:37:27 · 7048 阅读 · 0 评论 -
Mongodb笔记
mongod --replSet application --dbpath /var/lib/mongodb --port 27017 --oplogSize 1024mongo use admincfg={ _id:"application", members:[ {_id:0,host:'192.168.10.13:27017',priority:2}, {_id:1原创 2017-05-12 11:47:19 · 541 阅读 · 0 评论 -
如何检查当前mongodb使用的存储引擎
mongo进入客户端以后,执行db.serverStatus()在结果中查找"storageEngine" "storageEngine" : { "name" : "wiredTiger", "supportsCommittedReads" : true, "readOnly" : false, "persistent" : true }此时的存储殷勤是wi原创 2017-04-05 17:30:16 · 4974 阅读 · 0 评论 -
redis 集群如何手动切换主从
之前的结构是这样的:主:192.168.10.13:30001 从: 192.168.10.14:30004主:192.168.10.14:30003 从: 192.168.10.15:30006主:192.168.10.15:30005 从: 192.168.10.13:30002即,每台服务器既是一个分片的主,又是另一个分片的从,如此一来可以实现高可用。配原创 2017-03-27 10:43:05 · 9317 阅读 · 4 评论 -
lucene简单入门
Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。1,所需的基础jar包lucene-analyzers-common-6.4.2.jarlucene-core-6.4.2.jarlucene-memory-6.4.2.jarlucene-queryparser-6.4.2.jar官方下载地址:http://www.apache.org/dyn/cl原创 2017-03-26 23:08:39 · 328 阅读 · 0 评论 -
MongoDB是否可以对同一个文档的读和写操作加锁
通过对MongDB官方文档的理解,MongDB可以实现全局、库、集合和文档级别的读或者写锁。读锁是可以共享的,一个操作在读一条记录并且未释放读锁的时候,其他客户端也可以读该记录;而写锁是排他的,一个操作在写一条记录并且未释放读锁的时候,其他客户端既无法读,也无法写该记录。现在的问题是,能否实现这样一种情况,给一条记录加一个锁,先去读该记录,然后根据结果来进行某种处理,然后再修改该条记录,最后才原创 2017-04-10 11:43:35 · 4790 阅读 · 0 评论 -
redis整合Spring
redis版本:3.2.6主要所需jar包: commons-pool2-2.4.2.jarjedis-2.6.2.jarspring-data-redis-1.5.0.RELEASE.jarspring的包,我是使用MyEclipse自动生成的,如下:1, 首先是applicationContext.xml文原创 2017-03-30 15:04:25 · 417 阅读 · 0 评论 -
redis集群搭建
优势:· 自动分割数据到不同的节点上。· 整个集群的部分节点失败或者不可达的情况下能够继续处理命令Redis 集群没有使用一致性hash,而是引入了 哈希槽的概念.Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,举个例子,比如当前集群有3个节点,那么: 节点原创 2017-03-22 17:46:15 · 617 阅读 · 1 评论 -
MongoDB整合Spring
MongoDB版本:3.4.2主要所需jar包: mongo-java-driver-3.4.0.jar· spring-data-mongodb-1.4.1.RELEASE.jarspring-data-commons-1.6.1.RELEASE.jarspring的包,我是使用MyEclipse自动生成的,如下:1, 首先是applicati原创 2017-03-29 19:42:51 · 816 阅读 · 0 评论 -
cassandra 、mongodb、mariadb集群总结
今天还是在弄数据库的集群,在验证和测试各种东西,简单总结一下: 1,cassandra数据库,新增节点的时候,所有节点的token值会重新计算一次,然后再平均分配给所有节点,数据也会平均分配,不过在老的节点上的数据不会自动减少,所以老节点每隔一段时间需要手动的清理一下重复的数据 nodetool cleanup 2,mongodb原创 2016-12-03 00:33:13 · 1211 阅读 · 0 评论 -
YCSB的调研使用(针对MongoDB)
1 YCSB是什么 YCSB(Yahoo! Cloud Serving Benchmark)是雅虎开源的一款通用的性能测试工具。通过这个工具我们可以对各类NoSQL产品进行相关的性能测试,包括:HBase、Cassandra、Mongodb、Voldemort、Redis等。通过配置workload文件,YCSB可以灵活的模拟不同的测试负载和读写模式。 YCSB的几大特性:...原创 2018-08-28 14:05:09 · 2559 阅读 · 2 评论 -
MongoDB内存限制
用过MongoDB的人应该会发现一个问题,就是随着时间的推移,MongoDB占用的物理内存会越来越大,甚至到达不可想象的地步。或者在短时间内,用压力测试MongoDB的性能,内存也会飚的很高,而且会一直保持在最高的状态。下面的测试是在我的虚拟机上进行的,配置是1核4G,压力测试工具是YCSB,测试命令是./bin/ycsb load mongodb -s -P wor...原创 2018-08-30 13:51:16 · 34248 阅读 · 5 评论 -
数据库表连接的简单解释
转自:http://www.ruanyifeng.com/blog/2019/01/table-join.html作者: 阮一峰日期: 2019年1月15日关系型数据库最难的地方,就是建模(model)。错综复杂的数据,需要建立模型,才能储存在数据库。所谓"模型"就是两样东西:实体(entity)+ 关系(relationship)。实体指的是那些实际的对象,带有自己的属性...转载 2019-01-19 14:28:38 · 829 阅读 · 0 评论 -
MongoDB操作最佳实践(十)
MongoDB Atlas:作为MongoDB服务的数据库MongoDB Atlas提供了MongoDB的所有特性,而无需任何新应用程序所需的操作繁重。MongoDB Atlas通过现收现付模式按需提供,并按小时计费,让您专注于您最擅长的工作。很容易开始——使用一个简单的GUI来选择所需的实例大小、区域和特性。MongoDB Atlas提供: 保护数据访问的安全特性 内置复...翻译 2018-12-23 11:10:34 · 497 阅读 · 0 评论 -
MongoDB操作最佳实践(九)
灾难恢复:备份与恢复备份和恢复策略对于保护任务关键型数据免受灾难性故障或人为错误(例如代码错误或意外丢弃集合)是必需的。有了备份和恢复策略,管理员可以在没有数据丢失的情况下恢复业务操作,并且组织可以满足法规和遵从性要求。定期备份还有其他优点。备份可用于为开发、阶段或QA部署新的环境,而不影响生产系统。Ops Manager和Cloud Manager备份是连续维护的,仅比操作系统晚几...翻译 2018-12-23 10:44:45 · 273 阅读 · 0 评论 -
MongoDB操作最佳实践(八)
管理MongoDB:准备、监视和灾难恢复Ops Manager是由开发数据库的工程师创建的,是运行MongoDB的最简单方法,使操作团队易于部署、监视、备份和扩展MongoDB。Ops Manager的许多功能在托管在云中的MongoDB Cloud Manager服务中也是可用的。今天,云管理器支持成千上万的部署,包括从一台到几百台服务器的系统。使用MongoDB Enterprise Ad...翻译 2018-12-22 20:23:09 · 887 阅读 · 0 评论 -
MongoDB操作最佳实践(七)
网络 始终在可信任的网络规则环境中运行MongoDB以阻止所有未知的访问。与MongoDB系统通信的预定义进程数量很多:应用程序服务、监视进程和在副本集或分片集群中运行的其他MongoDB进程。默认情况下,MongoDB进程将绑定到系统上的所有可用网络接口。如果系统具有多个网络接口,则将MongoDB进程绑定到私有或内部网络接口。MongoDB安全教程提供了有关MongoDB默认端...翻译 2018-12-22 16:37:09 · 526 阅读 · 0 评论 -
MongoDB操作最佳实践(六)
每台主机进程为了获得最佳性能,用户应该在每个主机上运行一个mongod进程。通过使用虚拟化或容器技术来进行适当的大小调整和资源分配,可以在单个服务器上运行多个MongoDB进程,而不会争用资源。使用WiredTiger存储引擎,管理员将需要计算每个实例的适当缓存大小,方法是评估每个实例应该使用总RAM的哪个部分,并在每个实例之间分割默认的cache_size。为了高可用性,同一副本集...翻译 2018-12-20 23:47:17 · 224 阅读 · 0 评论 -
MongoDB操作最佳实践(五)
工作集MongoDB广泛使用RAM来加速数据库操作。在MongoDB中,所有数据都是通过数据的内存表示来读取和操作的。WiredTiger存储引擎通过其内部缓存管理数据,但它也受益于保存在文件系统缓存中的页面。MMAPv1使用内存映射的文件。从内存读取数据以纳秒为单位,从磁盘读取数据以毫秒为单位;从内存读取数据比从磁盘读取数据快10万倍。在正常操作期间访问的数据和索引集称为工作集。最佳实践...翻译 2018-12-16 19:59:25 · 253 阅读 · 0 评论 -
MongoDB操作最佳实践(四)
ProfiingMongoDB提供了名为Database Profier的profiing能力,它记录关于数据库操作的五种粒度信息。profier 能够记录所有事件的信息,或者仅记录持续时间超过可配置阈值(缺省值为100ms)的那些事件。探查数据存储在一个有上限的集合中,在那里可以方便地搜索相关事件。它可能比解析日志fies更容易查询这个集合。MongoDB Ops Manager和...翻译 2018-12-15 21:25:26 · 203 阅读 · 0 评论 -
MongoDB操作最佳实践(三)
空间分配调优(仅与MMAPv1存储引擎有关) 当在MongoDB MMAPv1存储引擎中更新文档时,如果有足够的空间,则就地更新数据。如果文档的大小大于分配的空间,那么可能需要在新位置重写文档。移动文档和更新其关联索引的过程可能是I/O密集型的,并且可能不必要地影响性能。为了预测未来的增长,在每个集合上默认启用usePowerOf2Sizes属性。默认情况下(来自MongoDB ...翻译 2018-12-15 11:53:13 · 442 阅读 · 0 评论 -
MongoDB操作最佳实践(二)
MongoDB部署前的准备 MongoDB可拔插存储引擎MongoDB公开了存储引擎API,支持集成可插入存储引擎,这些可插入存储引擎使用新功能扩展MongoDB,并且支持优化使用指定的硬件体系结构。MongoDB 这艘船拥有多个支持的存储引擎:默认的 是WiredTiger存储引擎。对于大多数应用程序,WiredTiger的粒度并发控制和本地压缩将为最广泛的应用程序提供最佳的综合...翻译 2018-12-08 11:29:50 · 207 阅读 · 0 评论 -
MongoDB操作最佳实践(一)
MongoDB 3.4(ps:文章大部分内容都是借助百度翻译,然后在上面作一些修正的。翻译不是目的,主要目的是强迫自己沉下心来将英文的技术文章看下去) 简介MongoDB是一种高性能、可扩展、分布式、为现代应用而设计的数据库。它被各种大大小小的组织用来处理关键任务,低延迟的操作应用程序,高吞吐量以及持续可用性等有严格要求的系统。虽然MongoDB的一些方面不同于传统的关系数据...翻译 2018-12-08 11:02:44 · 298 阅读 · 0 评论 -
MongoDB分配的内存与吞吐率的测试
测试条件: 服务端:CPU:8核 内存:32G 系统: Ubuntu 16.04 客户端: ycsb-0.5.0 (与服务端在不同的两台机器上) M...原创 2018-09-08 23:12:55 · 3030 阅读 · 0 评论 -
redis的常用命令及数据类型
1常用命令redis-serverredis.conf 启动redis服务redis-cli 启动redis客户端redis-cli shutdown 停止redis服务set foo bar 添加或修改foo的值为bar原创 2017-03-21 11:31:41 · 488 阅读 · 0 评论 -
(error) OOM command not allowed when used memory > 'maxmemory'
默认情况下,redis的最大内存是不限制的,如下:127.0.0.1:30003> CONFIG GET maxmemory1) "maxmemory"2) "0"我把它修改成了100M,然后向里面插数据:127.0.0.1:30003> CONFIG SET maxmemory 100OK127.0.0.1:30003> CONFIG GET maxmemory1原创 2017-03-27 15:46:00 · 6313 阅读 · 0 评论 -
Cassandra 3.x官方文档_cassandra.yaml配置文件
cassandra.yaml是Cassandra的主要配置文件重要:修改完cassandra.yaml文件配置以后,你必须重启节点使他生效。它位于下面的目录中: • Cassandra package 安装:/etc/cassandra• Cassandra tarball 安装:install_location/conf 配置属性分为以下几个部分:•快速开翻译 2017-01-02 22:10:57 · 13243 阅读 · 0 评论 -
Cassandra 3.x官方文档_安装DataStax Distribution of Apache Cassandra 3.x
安装DataStax Distribution ofApacheCassandra3.x 在基于RHEL系统上安装DataStax Distribution ofApache Cassandra 3.x注意: OpsCenter不支持在Cassandra 2.3和以后的版本上安装。使用这些步骤在RHEL, CentOS,和Oracle Linux上使用Yum仓库安装Ca翻译 2016-12-16 00:32:25 · 2526 阅读 · 0 评论 -
Cassandr 3.x官方文档_关于Apache Cassandra
2016年 8月11日关于Apache Cassandra关于这个文档欢迎来到由DataStax提供的cassandra文档。为了保证你在使用这份文档时获得最好的体验,先花一些时间看一看DataStax文档的使用建议。 登录页面提供了一些支持的平台,产品兼容性,规划和测试集群部署,推荐的生产配置,故障排除,第三方软件,额外的信息资源,管理员和开发人员的话题,和之前文翻译 2016-12-06 22:22:04 · 1224 阅读 · 0 评论 -
Cassandra 3.x官方文档_DataStax Distribution of Apache Cassandra 3.x有哪些新特性?
注:Cassandra现在发布了一个滴答时间表。.了解更多信息,查看Cassandra2.2, 3.0,和更多。 最近的DataStaxDistribution of Apache Cassandra3.x的版本是3.6。CHANGES.txt详细的描述了这些改变。你可以通过查看更改页的下拉分支或者标签,查看所有的版本。 Cassandra 3.2和后面版本的新特性翻译 2016-12-07 21:41:57 · 3689 阅读 · 0 评论 -
Cassandra 设计模式(第二版)_前言
前言ApacheCassandra是最流行的NoSQL数据库之一,是基于Dynamo的研究论文:亚马逊的高可用键-值存储和Bigtable:一个关系型数据的分布式存储系统。Cassandra是这两篇论文的最好实现。总的来说,NoSQL数据库可以分为以下几种:• 键-值数据库• 列族数据库• 文档数据库• 图数据库 Cassandra属于列族数据库。Cas翻译 2016-12-14 00:03:54 · 1271 阅读 · 0 评论 -
Cassandra、mongodb、mariadb 集群配置文档
一,cassandra数据库集群搭建/etc/cassandra/cassandra.yaml 修改配置文件listen_address: 192.168.10.12 当前iprpc_address: 0.0.0.0 远程监听地址broadcast_rpc_address: 192.168.10.12原创 2016-12-09 09:51:00 · 666 阅读 · 0 评论 -
搭建高可用mongodb集群(四)—— 分片
按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展?在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不转载 2016-12-03 00:30:10 · 723 阅读 · 0 评论 -
搭建高可用mongodb集群(三)—— 深入副本集内部机制
在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!副本集故障转移,主节点是如何选举的?能否手动干涉下架某一台主节点。官方说副本集数量最好是奇数,为什么?mongodb副本集是如何同步的?如果同步不及时会出现什么情况?会不会出现不一致性?mongodb的故障转移会不会无故自动发生?什么条件会触转载 2016-12-03 00:28:34 · 268 阅读 · 0 评论 -
搭建高可用mongodb集群(一)——配置mongodb
在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。NOSQL有这些优势:大数据量,可以通过廉价服务器存储大量的数据,轻松摆脱传统mysql单表存储量级限制。高扩展性,Nosql去掉了关系数据库的关系型特性,很容易横向扩展,摆脱了以往老是纵向扩展的诟病。高性能,N转载 2016-12-03 00:24:35 · 365 阅读 · 0 评论 -
Redis主从复制和集群配置
目录(?)[-]Redis主从复制和集群配置redis主从复制概述主从复制过程配置注意事项redis的Sentinelsentinel功能图示sentinelsentinel配置sentinel的一些命令java操作sentinelredis集群简介安装配置redis集群操作redis集群添加节点Redis集群删除节点java操作redis集群转载 2016-11-17 17:01:53 · 911 阅读 · 0 评论