Nosql实验报告
一 实验目的:
完成数据库的连接,实现能熟练使用NOSQL和为后面Hive和spark的实现创造基础。
二 实验要求:
完成软件下载及数据库连接。
三 实验步骤:
安装MongoDB
下载MongoDB提供了linux平台上32位和64位的安装包,你可以在官网下载安装包下载地址:http://www.mongodb.org/downloads
安装
下载完成后,在你安装的目录下解压zip包。
创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(–dbpath)。
mkdir -p /data/db
命令行中运行 MongoDB 服务
你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
$ ./mongod2015-09-25T16:39:50.549+0800 I JOURNAL [initandlisten] journal dir=/data/db/journal2015-09-25T16:39:50.550+0800 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed2015-09-25T16:39:50.869+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.162015-09-25T16:39:51.206+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.522015-09-25T16:39:52.775+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 7.7
MongoDB后台管理 Shell
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):
$ cd /usr/local/mongodb/bin
$ ./mongoMongoDB shell version: 3.0.6
connecting to: testWelcome to the MongoDB shell.……
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
2+24> 3+69
现在让我们插入一些简单的数据,并对插入的数据进行检索:
db.W3Cschool.insert({x:10})WriteResult({ “nInserted” : 1 })> db.W3Cschool.find(){ “_id” : ObjectId(“5604ff74a274a611b0c990aa”), “x” : 10 }>
第一个命令是将数据 8 插入到w3r集合(表)的 z 字段中。
MongoDb web 用户界面
MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。
$ ./mongod --dbpath=/data/db --rest
MongoDB 的 Web 界面访问端口比服务的端口多1000。
如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017。
MongoDB 创建数据库
语法MongoDB 创建数据库的语法格式如下:
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
以下实例我们创建了数据库 youj:
use youj
switched to db youj
db
youj
如果你想查看所有数据库,可以使用 show dbs 命令:
show dbs
local 0.078GB
test 0.078GB
可以看到,我们刚创建的数据库 youj 并不在数据库的列表中, 要显示它,我们需要向 youj 数据库插入一些数据。
db.youj.insert({“name”:“pan”})
WriteResult({ “nInserted” : 1 })
show dbs
local 0.078GB
youj 0.078GB
test 0.078GB
MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
插入文档
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
实例
以下文档可以存储在 MongoDB 的 pan数据库 的 col集合中:
db.col.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘w3cschool’,
url: ‘http://www.baidu.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100})
以上实例中 col 是我们的集合名,前一章节我们已经创建过了,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。
查看已插入文档:
db.col.find(){ “_id” : ObjectId(“56064886ade2f21f36b03134”), “title” : “MongoDB 教程”, “description” : “MongoDB 是一个 Nosql 数据库”, “by” : “w3cschool”, “url” : “http://www.baidu.com”, “tags” : [ “mongodb”, “database”, “NoSQL” ], “likes” : 100 }>
我们也可以将数据定义为一个变量,如下所示:
document=({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘w3cschool’,
url: ‘http://www.baidu.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100});
执行后显示结果如下:
{
“title” : “MongoDB 教程”,
“description” : “MongoDB 是一个 Nosql 数据库”,
“by” : “w3cschool”,
“url” : “http://www.baidu.com”,
“tags” : [
“mongodb”,
“database”,
“NoSQL”
],
“likes” : 100}
执行插入操作:
db.col.insert(document)WriteResult({ “nInserted” : 1 })>
安装与运行redis
1、安装
- 下载:打开redis官方网站,推荐下载稳定版本(stable)
- 解压
- tar zxvf redis-4.0.1.tar.gz
复制:推荐放到/usr/local目录下
sudo mv -r redis-4.0.1/* /usr/local/redis/
#进入redis目录
cd /usr/local/redis/
生成
sudo make
测试
sudo make test
安装:将redis的命令安装到/usr/bin/目录
sudo make install
2、运行 - 启动服务器:在桌面目录
redis-server
#按ctrl+c停止
启动客户端:在新终端中运行如下代码
redis-cli
运行命令
ping
set ‘a’ ‘123’
当添加键值后,发现当前运行目录下创建了一个文件:dump.rdb,这个文件用于将数据持久化存储
三、 基本配置与启动
1、基本配置 - 在源文件/usr/local/redis目录下,文件redis.conf为配置文件
- 绑定地址:如果需要远程访问,可将此注释
bind 127.0.0.1
端口,默认为6379
port 6379
是否以守护进程运行
如果以守护进程运行,则不会在命令行阻塞,类似于服务 如果以非守护进程运行,则当前终端被阻塞,无法使用 推荐改为yes,以守护进程运行
daemonize no|yes
数据文件
dbfilename dump.rdb
数据文件存储路径
#dir默认值为./,表示当前目录
推荐改为:dir /var/lib/redis
2、使用配置文件方式启动 - 运行redis-server会直接运行,并阻塞当前终端
- 一般配置文件都放在你/etc/目录下
sudo cp /usr/local/redis/redis.conf /etc/redis/
推荐指定配置文件启动
sudo redis-server /etc/redis/redis.conf
停止redis服务
ps aux|grep redis
输出
xzx1228 16806 0.1 0.0 46492 9160 ? Sl 17:24 0:03 redis-server *:6379
xzx1228 19434 0.0 0.0 15984 944 pts/2 S+ 18:26 0:00 grep --color=auto redis
关闭redis服务
#直接杀死相应进程
sudo kill -9 redis的进程id