NoSQL数据管理

聚合模型

聚合模型相当于包裹,包裹之间不进行数据交换

键值数据库 key-value

memcached 数据库

key是唯一标识,数据库不关心value是什么,应用程序负责解释。当成一种缓存中间件,数据库查询的缓存,基于内存的数据库。所有操作都是基于key。

 yum install memcached 
 systemctl start memcached 
 telnet 127.0.0.1 11211

magent连接多个memcached数据库,实现分布式。

redis

value 类型可以很多,数据结构服务器,redis可以将存在内存中的数据定期刷新并持久化到硬盘中,redis自己提供分布式部署的能力

redis>HMSET 1001 name "memcached" port "11211"
redis>HGET 1001 name
redis>HGET 1001 port
redis>lpush dbs redis  # lpush上传列表list
redis>lpush dbs mongodb # key 是dbs 插入一个redis和mongodb
redis>lrange dbs 0 10
# set没有顺序
redis>sadd dbs redis
redis>sadd dbs mongodb
redis>sadd dbs memcached
redis>smembers dbs

需要一个客户端 redis-client
redis使用hash槽,一次性hash的功能,redis具有主备功能。

redis安装

redis-cli
redis-cli -h xx.xxx.xxx.xxx -p 11211
集群模式安装,至少六台形成集群
# 修改 redis.conf
# 1.修改或直接注释bind ip 接受外部ip请求
# 2.取出cluster-enable_yes 的注释,开启集群功能
# 3.修改protected-mode yes 为no
# 4.service redis restart
# 控制集群需要安装
yum install redis-trib
redis-trib create --replicas 1 xx.xxx.xxx.xxx:xxxx ……
redis-cli -c

mongodb安装

文档数据库

yum install mongodb-server
yum install mongodb
mongo
insert操作
# user 集合的名字
# 第一次存放文档时新建数据库,无需新建
db.user.insert({json文档})
db.user.insert({name:"张三",age:"18"})
db.user.find({name:"张三"})
db.user.find({name:/^张*/})  #“张”开头
分布式环境构建
image.png

mongos是接受用户请求的,多个mongos
一台机器启动多个mongod进程,扮演不同的角色。
configserver用来存储配置文件
shardA是存储副本的,可以有多台服务器存储shardA,构成一个副本集


image.png

每一个副本集的个进程

mongodb配置实例

1.准备五台虚拟机
2.设计好角色

1[C,S1,S2,os]
2[S1,S2,S3]
3[S2,S3,S4]
4[S3,S4,C] S 分片
5[S4,C,S1] C config

3.分别在1-5号机器启动三个mongod进程
1)配置分片和数据分片启动参数不同,--configsvr --shardsvr
2)启动参数中指明自己的分片名(即副本集,C、S1等) --replSet S1
3)同一机器上不同进程占用不同端口
4.配置副本集,选择每一个组的任何一台机器上进行配置

> cfg={_id:"S1",members:[
              {host:'x.x.x.x:10002'},
              {host:'x.x.x.x:10001'},
              {host:'x.x.x.x:10003'}
]};
> rs.initiate(cfg)

5.在1号机器上启动mongos进程,启动参数中指明一个或多个配置服务器
6.用mongo连接mongos,之后添加到各分片集群

> sh.addShard("C/X.X.X.X:10001")
> sh.addShard("S1/X.X.X.X:10002")

7.针对某个数据库,启用分片存储

> db.runCommand({enableSharding:"dbname"})
> db.runCommand({shardCollection:"user",key:{"_id":1}}) #数据库的每一个表依据id进行分散存储
> db.runCommand({shardCollection:"use2",key:{"_id":hashed}}) # hash分片,对"_id"进行hash计算

大部分NoSQL数据库不支持join多表查询操作,但单个表中可以存放很多信息,基本不需要join
适用于:
1.适应于大规模多样的数据类型
2.需要比较丰富的快速查询能力
不适用:
1.复杂单文档多文档事务操作
2.完全无模式
3.查询不高,但对整体读取、分析要求较高的应用

列族数据库

Cassandra
超级列 大包裹中小包裹,小包裹中分片
BigTable 谷歌非结构化数据库
记录,多个记录形成一张大表
记录中的key多个value值,用时间戳进行区分
(row:string,column:string,time:int64)-->string
实例

----------------info---------------------------------scores------------------
1001     name     sex    Address       Chinese   English
         zhang     M        beijing          100     100

1001 是行关键字(倒排)    列索引(族名 列值  info:name) 时间戳
时间戳,读到的是最新的,可以保留多个版本

最大的特点就是只需要编辑info和scores,不需要确定info里面的内容,可以临时增加

HBASE模仿了Bigtable


Hbase.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容

  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,000评论 2 27
  • Redis是一个 Key-Value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更...
    vivi_wong阅读 13,351评论 2 4
  • Memcache和Redis的区别?Redis和memcached 的内存管理的区别? 网络IO模型:Memcac...
    星冉子阅读 532评论 0 1
  • 本文转自:http://blog.csdn.net/sunxianghuang/article/details/5...
    Andy_0801阅读 1,355评论 0 8
  • 包含的重点内容:JAVA基础JVM 知识开源框架知识操作系统多线程TCP 与 HTTP架构设计与分布式算法数据库知...
    消失er阅读 4,333评论 1 10