(一)完成Redis的安装和使用。完成数据库的插入,删除,以及查询。

  Redis是一个键值(key-value)存储系统,即键值对非关系型数据库,和Memcached类似,目前正在被越来越多的互联网公司采用。Redis作为一个高性能的键值数据库,不仅在很大程度上弥补了memcached这类键值存储的不足,而且在部分场合下可以对关系数据库起到很好的补充作用。Redis提供了PythonRubyErlangPHP客户端,使用很方便。

①使用hadoop用户登录ubuntu kylin,在windows系统使用FileZilla将压缩格式的文件redis-5.0.5.tar.gz传输保存在“/home/hadoop/下载”目录下,现在解压包装包至路径 /usr/local下。

②将redis-5.0.5.tar.gz文件解压保存至“/usr/local/”目录下。
③将redis-5.0.5重命名为redis,并把redis目录的权限赋予hadoop用户。

④进入“/usr/local/redis”目录,输入编译和安装Redis


⑤已经完成Redis的安装,现在开启Redis服务器。

⑥新建终端,启动Redis客户端。客户端连上服务器之后,会显示“127.0.0.1:6379>”的命令提示符信息,表示服务器的IP地址为127.0.0.1,端口为6379。现在可以执行简单的操作,比如,设置键为”hello”,值为”world”,并且取出键为”hello”时对应的值。至此Redis安装和运行成功,接下来即可操作Redis数据库。

Redis数据库是以<key,value>的形式存储数据,把表的数据存入Redis数据库时,keyvalue的确定方法如下:

* key=表名:主键值:列名
* value=列值

⑦插入数据:向Redis插入一条数据,只需要先设计好keyvalue,然后用set命令插入数据即可。例如,在Course表中插入一门新的课程“大数据”,4学分,操作命令和结果如下图所示。

⑧删除数据: Redis有专门删除数据的命令——del命令,命令格式为“del 键”。所以,如果要删除之前新增的课程“大数据”,只需输入命令“del Course:8:Cname”,如下图所示,当输入“del Course:8:Cname”时,返回“1”,说明成功删除一条数据。

⑨查询数据:Redis最简单的查询方式是使用get命令。输入get命令查询,输出为空,说明数据删除成功。

(二)MongoDB的安装和使用。

   完成MongoDB的基本的shell命令。 MongoDB 是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
①使用apt-get命令进行在线安装MongoDB,可以避免很多莫名其妙的问题。
命令行sudo apt-get install mongodb可下载安装MongoDB,默认安装的版本是MongoDB 2.6.10,但目前MongoDB已经升级到3.2.8,可以通过添加软件源的方式来安装3.2.8版本。

a.首先打开终端,导入公共key到包管理器

b.创建MongoDB的文件列表。

c.更新包管理器,安装MongoDB


d.安装完成MongoDB以后,在终端输入以下命令查看MongoDB版本。

MongoDB的启动和关闭。


③进入MongoDBshell命令模式。默认连接的数据库是test数据库,在此之前一定要确保已经启动了MongoDB,否则会出现错误,启动之后运行成功情况如下。

④常用操作命令
数据库相关
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表table
show users:显示所有用户
use yourDB:切换当前数据库至yourDB
db.help() :显示数据库操作命令
db.yourCollection.help() :显示集合操作命令,yourCollection是集合名

MongoDB没有创建数据库的命令,如果想创建一个“School”的数据库,先运行use School命令,之后做一些操作(如:创建聚集集合db.createCollection('teacher')),这样就可以创建一个名叫“School”的数据库。

⑤以一个School数据库为例,在School数据库中创建两个集合teacherstudent,并对student集合中的数据进行增删改查基本操作(集合Collection相当于关系型数据库中的表table)。
a. 切换到School数据库(切换到School数据库。MongoDB 无需预创建School数据库,在使用时会自动创建)

b. 创建Collection(创建一个聚集集合。MongoDB 其实在插入数据的时候,也会自动创建对应的集合,无需预定义集合)

c.与数据库创建类似,MongoDB插入数据时也会自动创建集合。 插入数据有两种方式:insertsave

插入数据成功

_id相同,更新数据

_id相同,插入失败,不做操作。

d.添加的数据其结构是松散的,只要是json格式均可,列属性均不固定,根据添加的数据为准。先定义数据再插入,就可以一次性插入多条数据。

e. 运行完以上例子,student 已自动创建,说明 MongoDB 不需要预先定义 collection ,在第一次插入数据后,collection 会自动的创建。

⑥查找数据
a. db.student.find() 查询所有记录。相当于:select * from student

b. db.student.find({sname: 'zhangsan'}) 查询sname='zhangsan'的记录。相当于: select * from student where sname='zhangsan'

c. db.student.find({},{sname:1, sage:1}) 查询指定列snamesage数据。相当于:select sname,sage from student

sname:1表示返回sname列,默认_id字段也是返回的,可以添加_id:0(意为不返回_id)写成{sname: 1, sage: 1,_id:0},就不会返回默认的_id字段了

d. db.student.find({sname: 'zhangsan', sage: 22})
and与条件查询。相当于:select * from student where sname = 'zhangsan' and sage = 22

e. db.student.find({$or: [{sage: 22}, {sage: 25}]})
or条件查询。相当于:select * from student where sage = 22 or sage = 25

f. db.youCollection.find(criteria, filterDisplay) criteria
查询条件,可选filterDisplay:筛选显示部分数据,如显示指定列数据,可选(当选择时,第一个参数不可省略,若查询条件为空,可用{}做占位符)

⑦修改数据 db.youCollection.update(criteria, objNew, upsert, multi )

criteria: update的查询条件,类似sql update查询内where后面的 objNew : update的对象和一些更新的操作符(如$set)等,也可以理解为sql update查询内set后面的。

upsert : 如果不存在update的记录,是否插入objNewtrue为插入,默认是false,不插入。
multi: mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。默认false,只修改匹配到的第一条数据。

其中criteriaobjNew是必选参数,upsertmulti可选参数。 db.student.update({sname: 'lisi'}, {$set: {sage: 30}}, false, true)
相当于:update student set sage =30 where sname = 'lisi';

⑧删除数据 db.student.remove({sname: 'chenliu'}) 相当于:delete from student where sname='chenliu'

⑨删除集合

⑩退出shell命令模式
输入exit或者Ctrl+C退出shell命令模式

(三)使用Java APIMongoDB进行访问。

Java MongoDB Driver驱动jar包已经下保存至’/home/hadoop/下载/’目录下。

②打开Eclipse,新建Java Project

引入驱动包mongodb-driver-3.8.0.jar

新建Class Average_grade


清空Average_grade.java里面的代码,然后在该文件中输入完整的执行集合student的增删改查操作的代码。

程序运行结束后会在底部的“Console”面板中显示运行结果信息。

每次执行完程序,都可以返回shell模式查看结果。如:在eclipse执行完更新操作后,在shell模式输入db.student.find(),可以查看student集合的所有数据。

(四)Redis和传统的Mysql数据库的区别在哪里?

mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。redisNOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限。
mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复频繁的访问数据库。
第一:会在反复链接数据库上花费大量时间,从而导致运行效率过慢;
第二:反复的访问数据库也会导致数据库的负载过高,那么此时缓存的概念就衍生了出来。
③缓存就是数据交换的缓冲区(cache),当浏览器执行请求时,首先会对在缓存中进行查找,如果存在,就获取;否则就访问数据库。缓存的好处就是读取速度快。
redis数据库就是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率。

(五)MongoDB有哪些特点,和Mysql数据库的区别在哪里?

特点:
Mongodb是非关系型数据库(nosql),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。
存储方式:虚拟内存+持久化。 查询语句:是独特的Mongodb的查询方式。 适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分片来实现高可用。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

区别:
MongoDB还有一个最大的缺点,就是它占用的空间很大,在MongoDB中频繁的进行数据增删改时,如果记录变了,例如数据大小发生了变化,这时候容易产生一些数据碎片,出现碎片引发的结果,一个是索引会出现性能问题。
MySQLMongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。

NoSQL数据库的安装和使用相关推荐

  1. redis数据库NoSQL的介绍安装和使用

    Redis使用 redis介绍 什么是NoSQL NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题.目前一些主流的NOSQL产品: NoSQL数据库的分类 ...

  2. 企业级nosql数据库应用与实战-redis

    企业级nosql数据库应用与实战-redis 项目场景: 随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红 ...

  3. 高性能NoSql数据库 SSDB

    今天在看一个开源项目的时候,发现作者使用一个ssdb的数据库,第一反应是ssd硬盘,当时很诧异.后面了解后才知道,原来是 nosql数据库. ssdb介绍 一个高性能的支持丰富数据结构的 NoSQL ...

  4. 细数 Windows 平台上的 NoSQL 数据库

    从可查询的分布式解决方案,如MongoDB,到简单的分布式Key/Value存储解决方案,如Cassandra.此外,还有Riak,Tokyo Cabinet,Voldemort,CouchDB和Re ...

  5. 转:几款主流 NoSql 数据库的对比

    转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoS ...

  6. NoSQL数据库-MongoDB和Redis

    NoSQL数据库-MongoDB和Redis   发布于2012-12-20,来源:比特网   1NoSQL简述 CAP(Consistency,Availabiity,Partitiontolera ...

  7. HBase、Redis、MongoDB、Couchbase、LevelDB 五款主流NoSQL数据库大比拼

    在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资 ...

  8. nosql数据库学习总结

    大数据时代的数据库选择:SQL还是NoSQL? 执行大数据项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞 大的安装基础;而NoSQL正在获得可观的收益,且 ...

  9. redis(nosql数据库)

    概述 redis是一种nosql数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,并且他比memcached支持更多的数据结构(string,list列表 ...

  10. python数据库操作nosql_用Python写一个NoSQL数据库

    Set Up 下面是我们服务器所需的一些样板代码: """NoSQL database written in Python""" # Sta ...

最新文章

  1. 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf
  2. Dorado7功能及技术特点
  3. mysql 分组取最新的一条记录(整条记录)
  4. linux系统执行crontab定时任务 涉及redis-cli报错:/bin/sh: redis-cli:command not found
  5. 傅立叶变换、拉普拉斯变换、Z变换之间 篇二
  6. sysbench安装和使用(亲测)
  7. gitlab project项目迁移
  8. html页面text固定长度,HTML中input type=text和type=password 显示的长度不一样
  9. gephi导入边数据时,和节点数据不在一个工作区
  10. Selenium3元素定位详解与封装
  11. 2018年美国专利数量公布:IBM夺榜首 华为排第19
  12. spring 事务隔离级别和传播行为_Spring 事务传播行为
  13. 90后渐成互联网基金销售平台的购买主力
  14. 对集成电路的认识以及集成电路的重要性
  15. 傅里叶分析之掐死教程(完整版)
  16. ue4 rootmotion动画、模型导入使用(注)
  17. MobileNet_v1:深度可分离卷积
  18. 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员考试总结
  19. Android中定位功能的判断与打开
  20. PAT_乙级_1046. 划拳(15)

热门文章

  1. 父与子的编程之旅 python 3 pdf_父与子的编程之旅pdf微盘
  2. 司守奎《数学建模算法与应用》 第二版
  3. Android 性能分析工具介绍
  4. 计算机控制v90伺服,西门子S7-1200控制V90伺服教程(TIA).pdf
  5. 新系统申请软件著作权详细操作说明
  6. 如何使用jmeter录制脚本
  7. C语言工程实践--物业费管理系统
  8. Amazon SP API注册申请和授权
  9. 网易云音乐缓存文件解密
  10. 精品软件 推荐 TM2013 性能不好的电脑可以用这软件替代QQ