nosql

MongoDB 基础(2019年开篇)

自作多情 提交于 2020-03-26 08:52:32
MongoDB基础知识: 1、什么是MongoDB NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL"。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB是由C++编写的,MongoDB语法类似JS,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB将数据存储为一个文档,数据结构由键值对(key=>value)组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。 示例: { name: "wangchunwang", age: 26, groups: ["news", "sports"] } 假设上述文档所在的集合是testcoll,那么以下几种查询键值方法等效: > db.testcoll.findOne().name // 点链式访问 > db["test"].findOne()["name"] // 数组式访问 2、进入MongoDB Shell 在cmd中输入 > mongo [ip:port/database -u username -p] 查看当前操作的数据库:> db 显示所有数据库:> show dbs

SQL、NoSQL 和 NewSQL,长江后浪推进浪!

时光毁灭记忆、已成空白 提交于 2020-03-25 09:05:07
3 月,跳不动了?>>> 作者:hiekay https://www.jianshu.com/p/ed55f20e736a SQL作为主要的数据存储方式已经超过40年,并且经历了至少两个指数扩张期:20世纪90年代Web应用程序崛起之后,以及在过去十年中由于移动设备爆炸引起的扩张。 因此,越来越小的公司开始发现使用数据库的好处,而像Google这样的互联网巨头则已经将数据单位上升到PB或甚至EB。 在SQL 的发展过程中,产生了许多迭代产品,其中最重要的是SQL,NoSQL和NewSQL — 它们一起负责绝大部分的数据库市场。 所以,如果你要选择一个数据库工具,你应该选择哪一个?其实,没有明确的答案。不同的人和公司选择不同,这更多地取决于他们对每个特定项目的偏好和相对优势,而不是其中一个对其他所有的直接优势。那么,这些优点和缺点是什么?让我们来看一下。 SQL SQL是关系型数据库管理系统(RDBMS),顾名思义,它是围绕关系代数和元组关系演算构建的。 70年代以来,它一直是主要的数据库解决方案,只是最近才有了其他产品的空间。不管有些人说什么,这意味着它一直能出色地执行广泛的任务。其主要优点如下: 不同的角色(开发者,用户,数据库管理员)使用相同的语言。 不同的RDBMS使用统一标准的语言。 SQL使用一种高级的非结构化查询语言。 它坚持 ACID 准则 (原子性,一致性,隔离性

Redis_技术_超详细入门教程

匆匆过客 提交于 2020-03-24 16:59:20
3 月,跳不动了?>>> Redis_技术_超详细入门教程 一. NoSQL概述 1.在说Redis之前,让我们先去了解NoSQL,为什么呢? 因为,主流NoSQL的产品中,就包含了我们即将学习的Redis 2. 什么是NoSQL NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL” NoSQL是一项全新的数据库理念 NoSQL属于非关系型的数据库,没有表的概念,目的只是存储数据。 ---回顾关系型的数据库:mysql,内部有关系(表) 3. 为什么使用NoSQL? 随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如 High performance - 对数据库高并发读写的需求 Huge Storage - 对海量数据的高效率存储和访问的需求 High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求 NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 4. NoSQL数据库的四大分类如下: 键值 (Key-Value) 存储数据库 相关产品:

NoSQL-redis安装和使用

与世无争的帅哥 提交于 2020-03-24 16:56:58
3 月,跳不动了?>>> 1. 什么是NoSQL ? NoSQL (Not Only SQL) , 意即 "不仅仅是SQL",NoSQL是一项全新的数据库理念, NoSQL属于菲关系型的数据库,不同于MySQL,NoSQL没有表的概念,目的知识存储数据 . 2.为什么要是用NoSQL ? 我们使用NoSQL数据库是为了解决 高并发读写 、 海量数据的高效存储和访问 、高可扩展性和高可用性 的问题. 3.常见的NoSQL数据库 键值数据库 : redis 列存储数据库 : HBase 文档型数据库 : MongoDB 图形(Graph)数据库 4.下载与安装Redis 下载 : redis官网支持Linux版本,微软维护windows版本 redis官网,可以下载linux版本 https://redis.io/ windows版本 https://github.com/MicrosoftArchive/redis/releases 安装 : 1. 将安装包解压到指定位置即可 2.启动redis 服务 在安装目录位置输入 "cmd" ,敲回车 进入 黑窗口 输入 redis-server.exe 敲回车 5.将redis服务注册成window服务 双击 redis-server.exe 文件打开黑窗口,表示服务运行中。 如果关闭黑窗口,服务也就关闭了,使用的时候非常不方便。

初识Redis

五迷三道 提交于 2020-03-24 15:48:00
初识Redis NoSQL是什么? 数据库: 用来存储数据的仓库 NoSQL: 不仅仅是SQL,是许多非关系型数据库的统称,但本质上还是存储数据的仓库 为什么需要NoSQL? 解决了高并发的读写问题 解决了海量数据的高效率存储和访问问题 实现了高可用性及高可扩展性 Redis是什么? 是由C语言开发的一款开源的、高性能的键值对存储数据库。 它支持多种键值数据类型。包括字符串、列表、集合、散列、有序集合等。它内置复制、Lua脚本、LRU收回、事务及不同级别磁盘持久化功能,同时通过Redis Sentinel实现高可用,Redis Cluster提供自动分区等相关功能。 Redis的特性 支持多种语言。c、java、c++等 丰富的数据类型 多种数据结构,如哈希、集合、位图(多用于活跃用户数等统计)、HyperLogLog(超小内存唯一值计数,由于只有12kb,因而有误差)、GEO(地理位置信息) 读写速度快,性能高。官方给出的数据是:Redis 能读的速度是 110 000 次/s,写的速度是 81 000 次/s。之所以有这么快的读/写速度,是因为这些数据都存储在内存中。 支持持久化。Redis 的持久化也就是备份数据,它每隔一段时间就将内存中的数据保存在磁盘中,在重启的时候会再次加载到内存中,从而实现数据持久化。Redis 的持久化方式是 RDB 和 AOF。 简单且功能强大

Redis应用场景

試著忘記壹切 提交于 2020-03-23 08:07:15
1、 l iunux系统 redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的 不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add /remove及取交集并集和差集及更丰富的操作。在此基础上,redis支持各种不同方式的排序。Redis数据都是缓存在计算机内存中,并且会周期性 的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。 redis官网地址: http://www.redis.io/ 最新版本:2.8.3 在Linux下安装Redis非常简单,具体步骤如下(官网有说明): 1、下载源码,解压缩后编译源码。 $ wget http://download.redis.io/releases/redis-2.8.3.tar.gz $ tar xzf redis-2.8.3.tar.gz $ cd redis-2.8.3 $ make 2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。 mkdir /usr/redis cp redis-server /usr/redis cp

本地读写的多活数据存储架构设计要义

不问归期 提交于 2020-03-22 23:56:12
3 月,跳不动了?>>> 本文由公众号EAWorld翻译发表,转载需注明出处。 作者:Parashar Borkotoky 译者:白小白 原文:http://t.cn/AiKO0q4P 原题:Design Considerations in a read local write local multi-master data store 本地读写多活示例 本地读-本地写的多活数据存储架构是最难实现的数据模式之一。这一模式也常被称为“双活”或者“多主”,对于不同行业大容量低延迟的事务类应用而言,这是一种必备的能力。 系统的整体可用性取决于单独组件的可用性。用户界面层、服务层和消息层可以跨分区/跨地域进行横向扩展以提供高可用性,但对于事务性数据存储(尤其是写操作)而言,采用同样的处理方案仍旧充满挑战。无论部署在本地或者云端,很多关系型数据库和noSQL数据库都提供了这种开箱即用的能力。也有一些企业选择自己实现定制化的复制方案来达成多活的目标,对于强烈依赖低延迟的用户尤其如此。忽略方案的差异性,人们需要对一些通用的风险与权衡进行仔细考量。 同步复制与异步复制 首当其冲需要考虑的就是在跨可用域的数据复制过程中,是采用同步复制还是异步复制的方案。 同步复制技术需要实现多可用域/可用区间的同步写入。这将会带来很多的问题: 随着可用域的增加,写入延迟也将逐渐增加 域内的服务需要同步的访问域外资源

Query condition missed key schema element : Validation Error

时光毁灭记忆、已成空白 提交于 2020-03-17 09:53:49
问题 I am trying to query dynamodb using the following code: const AWS = require('aws-sdk'); let dynamo = new AWS.DynamoDB.DocumentClient({ service: new AWS.DynamoDB( { apiVersion: "2012-08-10", region: "us-east-1" }), convertEmptyValues: true }); dynamo.query({ TableName: "Jobs", KeyConditionExpression: 'sstatus = :st', ExpressionAttributeValues: { ':st': 'processing' } }, (err, resp) => { console.log(err, resp); }); When I run this, I get an error saying: ValidationException: Query condition

Query condition missed key schema element : Validation Error

删除回忆录丶 提交于 2020-03-17 09:53:46
问题 I am trying to query dynamodb using the following code: const AWS = require('aws-sdk'); let dynamo = new AWS.DynamoDB.DocumentClient({ service: new AWS.DynamoDB( { apiVersion: "2012-08-10", region: "us-east-1" }), convertEmptyValues: true }); dynamo.query({ TableName: "Jobs", KeyConditionExpression: 'sstatus = :st', ExpressionAttributeValues: { ':st': 'processing' } }, (err, resp) => { console.log(err, resp); }); When I run this, I get an error saying: ValidationException: Query condition

Redis 概念

泪湿孤枕 提交于 2020-03-17 01:58:06
Redis是什么 Redis是一个使用C语言编写的key-value开源的NOSQL存储系统。 (MySQL以二维表格的形式存储)。 NoSQL适用场景 对数据的高并发读写 对数据的高可扩展性 快速存取数据 NoSQL不适用场景 不支持事务 不支持基于sql的结构化查询存储,处理复杂的关系 NoSQL数据库举例 memcache 很早出现的NoSql数据库,数据都在内存中。 一般不持久化支持简单的key-value模式。 一般是作为缓存数据库辅助持久化的数据库。 redis 几乎覆盖了Memcached的绝大部分功能。 数据都在内存中。 支持持久化,主要用作备份恢复。 支持简单的key-value模式。 还支持多种数据结构的存储,比如 list、set、hash、zset等。 一般是作为缓存数据库辅助持久化的数据库。 现在市面上用得非常多的一款内存数据库。 mongoDB介绍 高性能、开源、模式自由(schema free)的文档型数据库数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘。 虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能。 支持二进制数据及大型对象可以根据数据的特点替代RDBMS(关系数据库管理系统) ,成为独立的数据库。或者配合RDBMS,存储特定的数据。 列式存储HBase HBase是Hadoop项目中的数据库。