随笔分类 -  NoSQL

摘要:对于write操作而言,首先写入journal日志,然后将数据在内存中修改(mmap),此后后台线程间歇性的将内存中变更的数据flush到底层的data files中,时间间隔为60秒(参见配置项“syncPeriodSecs”); write操作在journal文件中是有序的,为了提升性能,wri 阅读全文
posted @ 2020-12-20 17:36 hjy1995 阅读(409) 评论(0) 推荐(0) 编辑
摘要:Map-Reduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE),MapReduce可以被用来构建大型复杂的聚合查询,对于大规模数据分析相当实用。MapReduce基本语法 db.collection.mapReduce( func 阅读全文
posted @ 2020-12-20 17:32 hjy1995 阅读(115) 评论(0) 推荐(0) 编辑
摘要:mongodb不支持事务,但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。 原子操作常用方法: db.collection.findAndModify() 、db.collection.findOneAndDelete()、db.collection.findOne 阅读全文
posted @ 2020-12-20 17:31 hjy1995 阅读(216) 评论(0) 推荐(0) 编辑
摘要:文档间可以通过嵌入和引用来建立联系。MongoDB 中的关系可以是: 1:1 (1对1) 1: N (1对多) N: 1 (多对1) N: N (多对多) 嵌入式关系 这种数据结构的缺点是,如果用户和用户地址在不断增加,数据量不断变大,会影响读写性能 文档嵌套的数量和深度没有限制,但MongoDB目 阅读全文
posted @ 2020-12-20 17:28 hjy1995 阅读(164) 评论(0) 推荐(0) 编辑
摘要:添加MongoDB驱动 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.12.0</version> </dependency> //连接 MongoD 阅读全文
posted @ 2020-12-20 17:26 hjy1995 阅读(108) 评论(0) 推荐(0) 编辑
摘要:复制 MongoDB复制是将数据同步在多个服务器的过程。 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 保障数据的安全性 数据高可用性 (24*7) 灾难恢复 无需停机维护(如备份,重建索引,压缩) 分布式读取数据 MongoDB复制是主从结 阅读全文
posted @ 2020-12-20 17:22 hjy1995 阅读(1744) 评论(0) 推荐(0) 编辑
摘要:aggregate 聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果 db.collection.aggregate(AGGREGATE_OPERATION),基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道 阅读全文
posted @ 2020-12-20 17:19 hjy1995 阅读(1186) 评论(0) 推荐(0) 编辑
摘要:索引 索引是特殊的数据结构,存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构,MongoDB 的索引存储在内存中,是B树结构 db.collection.createIndex(keys, options),使用createIndex() 方法创建索引 Key 阅读全文
posted @ 2020-12-20 17:16 hjy1995 阅读(171) 评论(0) 推荐(0) 编辑
摘要:文档操作 插入文档 db.COLLECTION_NAME.insert(document),若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据 db.COLLECTION_NAME.inse 阅读全文
posted @ 2020-12-20 17:15 hjy1995 阅读(126) 评论(0) 推荐(0) 编辑
摘要:MongoDB连接 通过MongoDB shell 来连接 Mongodb 服务 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] mongod 阅读全文
posted @ 2020-12-20 17:14 hjy1995 阅读(219) 评论(0) 推荐(0) 编辑
摘要:简介 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB 将数据存储为一个文档,数据结构由键值 阅读全文
posted @ 2020-12-20 17:12 hjy1995 阅读(109) 评论(0) 推荐(0) 编辑
摘要:集群模式 Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,主从节点数据一致性的原理和主从模式一样 Redis集群运行原理如下: 1.所有的Redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化 阅读全文
posted @ 2020-12-20 17:09 hjy1995 阅读(166) 评论(0) 推荐(0) 编辑
摘要:哨兵模式 哨兵模式(Sentinel)机制。如果主服务器挂了,我们可以将从服务器升级为主服务器,等到旧的主服务器(挂掉的那个)重连上来,会将它(挂掉的主服务器)变成从服务器 一个或者多个哨兵Sentinel不停地监控Redis主从服务器是否正常工作 如果某个Redis实例有故障,那么哨兵负责发送消息 阅读全文
posted @ 2020-12-20 17:05 hjy1995 阅读(190) 评论(0) 推荐(0) 编辑
摘要:缓存雪崩 缓存雪崩: Redis挂掉了,请求全部走数据库。 对缓存数据设置相同的过期时间,导致某段时间内缓存失效,请求全部走数据库。 缓存雪崩如果发生了,很可能就把我们的数据库搞垮,导致整个服务瘫痪 解决方法: 1.Redis挂掉 事发前:实现Redis的高可用(主从架构+Sentinel 或者Re 阅读全文
posted @ 2020-08-14 23:33 hjy1995 阅读(103) 评论(0) 推荐(0) 编辑
摘要:主从模式(单主服务器) 主服务器负责接收写请求 从服务器负责接收读请求 从服务器的数据由主服务器复制过去。主从服务器的数据是一致的 配置方式 假设我有三个redis实例,地址分别如下: 192.168.248.128:6379 192.168.248.128:6380 192.168.248.128 阅读全文
posted @ 2020-08-14 23:31 hjy1995 阅读(412) 评论(0) 推荐(0) 编辑
摘要:Redis提供了两种不同的持久化方法来讲数据存储到硬盘里边: RDB(基于快照),将某一时刻的所有数据保存到一个RDB文件中。 AOF(append-only-file),当Redis服务器执行写命令的时候,将执行的写命令保存到AOF文件中。 RDB 命令 SAVE会阻塞Redis服务器进程,服务器 阅读全文
posted @ 2020-08-14 23:29 hjy1995 阅读(107) 评论(0) 推荐(0) 编辑
摘要:三种连接Redis的方法 方法一:单机连接池连接 JedisPoolConfig jedisPoolConfig=new JedisPoolConfig(); JedisPool jedisPool=new JedisPool(jedisPoolConfig,"host","port",2000," 阅读全文
posted @ 2020-05-29 10:19 hjy1995 阅读(222) 评论(0) 推荐(0) 编辑
摘要:Redis 管道技术 Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 服务端处理命令,并将结果返回给客户端 Redis 管道技术可以在服务端未 阅读全文
posted @ 2020-05-11 22:46 hjy1995 阅读(112) 评论(0) 推荐(0) 编辑
摘要:1、数据备份 SAVE 同步保存数据到硬盘 BGSAVE 在后台异步保存当前数据库的数据到磁盘,将在 redis 安装目录中创建dump.rdb文件 SHUTDOWN [NOSAVE] [SAVE] 异步保存数据到硬盘,并关闭服务器 LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上 阅读全文
posted @ 2020-05-11 22:43 hjy1995 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Redis 连接 我们可以通过 redis 的配置文件设置密码参数,这样客户端连接到 redis 服务就需要密码验证,这样可以让你的 redis 服务更安全 查看是否设置了密码(默认为空,没有密码的) CONFIG get requirepass 设置密码 CONFIG set requirepas 阅读全文
posted @ 2020-05-11 22:38 hjy1995 阅读(128) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示