博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NoSQL 学习笔记
阅读量:6150 次
发布时间:2019-06-21

本文共 1198 字,大约阅读时间需要 3 分钟。

hot3.png

nosql(not only sql)

一、NOSQL

nosql和关系型数据库互补。

二、4种Nosql数据库:memcached、Tokyo Tyrant、Redis、Mongodb.

Memcached

memcached:临时性键值存储,无硬盘IO处理。

高响应,作为高速缓存使用,数据在内存中。

通过LRU(Least Recently Used)顺序删除不使用的数据,自动清除。

通过散列表(关联数组)来存储各种格式数据的键值存储,所有数据都被存储在内存中。

当使用多台服务器运行memcached时会使用一致散列算法(Consistent Hashing)来分散数据。

不足:数据临时性(数据可能会丢失)

Tokyo Tyrant

Tokyo Tyrant:永久性键值存储,数据保存在硬盘中,速度快。

保存和读取数据时与硬盘的IO处理无关。

不足:安装麻烦

Redis

Redis:临时性/持久性键值存储,处理数组形式的数据。

本身作为数据存储设计出来的,通过命令明确删除数据,除非设定expires(失效时间),

不会自动清除数据。从2.1版本开始可以memcached那样过期自动清除数据。

Redis向硬盘写入数据时,提供了数据快照的永久化功能,内存中数据的快照被写入

文件(*.rdb)中,再启动时数据快照中的内容就会被读入内存中,这样恢复到上次数据快照时状态。

Redis可以处理字符串,链表list,集合set,有序集合zset,散列表等各种类型值数据,

但所有数据都被当作字符串进行处理。

从2.0以后的版本实现了独立的虚拟内存结构,可以把实际内存中保存不下的数据写入硬盘中。

使用实例:github、digg、新浪微博、微笑直播。

不足:实例少。

MongoDB

MongoDB:面向文档的数据库,无需定义表结构,可添加索引进行高速处理。无法进行join查询。

MongoDB在保存数据时会把数据和数据结构完整地以BSON(JSON的二进制化产物)保存

起来,并把它作为值和键进行关联。数据以数组形式进行保存.

MongoDB基本上是单独使用的,无需和关系型数据库配合使用,不必再关心表结构和程序的一致性。

实例:字段不确定的情况,如调查问卷。字段可能会发生流动变化的情况,

如分析结果数据。这些情况下使用Mongodb很有效。

不足:使用MongoDB创建和更新数据时,数据不会实时写入硬盘中,有可能出现数据丢失情况。

三、4种Nosql数据库应用实例

Redis具体应用实例

时间线形式(用户发言后以时间序列形式显示)的web应用。

主要任务:实现用户登录,注销,关注,发微博,显示微博等功能。

 

四、4种Nosql数据库性能

五、NOSQL实际应用问题点

待续。。。

转载于:https://my.oschina.net/xiejunbo/blog/337094

你可能感兴趣的文章
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
USACO 土地购买
查看>>