Redis系统、MongoDB的安装和使用

安装Redis

1.下载,解压压缩包
在这里插入图片描述
在这里插入图片描述
2. 赋权限给Hadoop用户

sudo chown -R hadoop:hadoop ./redis
  1. 进入redis文件夹,编译安装
cd ./redis
sudo make
sudo make install

在这里插入图片描述

4.启动redis服务器

cd /usr/local/redis
./src/redis-server

在这里插入图片描述
6. 新建终端,启动redis客户端

cd /usr/local/redis
./src/redis-cli

在这里插入图片描述

操作redis数据库

  1. 插入数据
set Student:95001:Sname Liyong
set Course:1:Cname SQL
set SC:95001:1:Grade 92
set Course:8:Cname algorithm
set Course:8:Ccredit 4

在这里插入图片描述
2. 修改数据

get Course:8:Cname  
set Course:8:Cname bianyi
Get Course:8:Cname 

在这里插入图片描述
3. 删除数据

get Course:8:Cname  
del Course:8:Cname
Get Course:8:Cname 

在这里插入图片描述
4. 查询数据

set Course:8:Cname bianyi

MongoDB安装

1. 导出公共密钥到包管理器

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

!!! Ubuntu软件包管理工具(即dpkg和apt)通过要求分销商使用GPG密钥对软件包进行签名来确保软件包的一致性和真实性。使用以下命令以导入MongoDB公共GPG密钥:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

2. 创建MongoDB的文件夹

echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list

在这里插入图片描述
3. 更新包管理器

sudo apt-get update

4. 安装,查版本

sudo apt install mongodb-org

在这里插入图片描述

Unable to locate package mongodb-org

遇事不决,重启重配
在这里插入图片描述
在这里插入图片描述

mongo -version

在这里插入图片描述

5. 启动

sudo service mongod start

默认设置下,MongoDB是随Ubuntu启动而自动启动的。可以输入以下命令查看是否启动成功:

pgrep mongod -l 

在这里插入图片描述

6. 结束

sudo service mongod stop

MongoDB shell模式使用

  1. 进入MongoDB Shell模式
sudo service mongod start

输入mongo进入shell模式
在这里插入图片描述
2. 常见命令
(1) 显示数据库列表
在这里插入图片描述

(2) 显示的当前数据库中的集合
在这里插入图片描述

(3) 切换数据库
在这里插入图片描述
(4)创建集合
在这里插入图片描述
(5)插入数据
在这里插入图片描述

(6)查找数据

在这里插入图片描述

查询所有记录db.student.find()

查询sname='lisi’的记录db.student.find({sname: 'lisi'})

查询指定列sname、sage数据db.student.find({},{sname:1, sage:1})

AND条件查询db.student.find({sname: 'zhangsan', sage: 22})

OR条件查询db.student.find({$or: [{sage: 22}, {sage: 25}]})

格式化输出
在这里插入图片描述
(7)修改数据
在这里插入图片描述

(8)删除数据或集合
在这里插入图片描述

3. 退出shell模式
exit

Java API编程实例

创建java项目,导入mongo驱动的jar文件

import java.util.ArrayList;
import java.util.List; 
import org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters; 
public class TestMongoDB {
    /**
     * @param args
     */
    public static void main(String[] args) {
//      insert();//插入数据。执行插入时,可将其他三句函数调用语句注释,下同
        find(); //查找数据
//      update();//更新数据
//      delete();//删除数据
    }

    /**
     * 返回指定数据库中的指定集合
     * @param dbname 数据库名
     * @param collectionname 集合名
     * @return
     */
    //MongoDB无需预定义数据库和集合,在使用的时候会自动创建
    public static MongoCollection<Document> getCollection(String dbname,String collectionname){
        //实例化一个mongo客户端,服务器地址:localhost(本地),端口号:27017
        MongoClient  mongoClient=new MongoClient("localhost",27017);
        //实例化一个mongo数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase(dbname);
        //获取数据库中某个集合
        MongoCollection<Document> collection = mongoDatabase.getCollection(collectionname);
        return collection;
    }
    /**
     * 插入数据
     */
    public static void insert(){
        try{
            //连接MongoDB,指定连接数据库名,指定连接表名。
            MongoCollection<Document> collection= getCollection("School","student");    //数据库名:School 集合名:student
            //实例化一个文档,文档内容为{sname:'Mary',sage:25},如果还有其他字段,可以继续追加append
            Document doc1=new Document("sname","Mary").append("sage", 25);
            //实例化一个文档,文档内容为{sname:'Bob',sage:20}
            Document doc2=new Document("sname","Bob").append("sage", 20);
            List<Document> documents = new ArrayList<Document>(); 
            //将doc1、doc2加入到documents列表中
            documents.add(doc1); 
            documents.add(doc2); 
            //将documents插入集合
            collection.insertMany(documents);  
            System.out.println("插入成功"); 
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
    /**
     * 查询数据
     */
    public static void find(){
        try{
            MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
            //通过游标遍历检索出的文档集合 
//          MongoCursor<Document>  cursor= collection.find(new Document("sname","Mary")). projection(new Document("sname",1).append("sage",1).append("_id", 0)).iterator();   //find查询条件:sname='Mary'。projection筛选:显示sname和sage,不显示_id(_id默认会显示)
            //查询所有数据
            MongoCursor<Document>  cursor= collection.find().iterator();
            while(cursor.hasNext()){
                System.out.println(cursor.next().toJson());
            }
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
    /**
     * 更新数据
     */
    public static void update(){
        try{
            MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
             //更新文档,将文档中sname='Mary'的文档修改为sage=22   
             collection.updateMany(Filters.eq("sname", "Mary"), new Document("$set",new Document("sage",22)));  
             System.out.println("更新成功!");
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
    /**
     * 删除数据
     */
    public static void delete(){
        try{
            MongoCollection<Document> collection = getCollection("School","student");  //数据库名:School 集合名:student
                //删除符合条件的第一个文档  
            collection.deleteOne(Filters.eq("sname", "Bob"));  
            //删除所有符合条件的文档  
            //collection.deleteMany (Filters.eq("sname", "Bob"));
            System.out.println("删除成功!");
        }catch(Exception e){
            System.err.println( e.getClass().getName() + ": " + e.getMessage() );
        }
    }
}

报错了
在这里插入图片描述

Nov 30, 2022 9:41:43 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout=‘30000 ms’, maxWaitQueueSize=500}
Nov 30, 2022 9:41:43 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster description not yet available. Waiting for 30000 ms before timing out
Nov 30, 2022 9:41:43 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:7}] to localhost:27017
Nov 30, 2022 9:41:43 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[4, 0, 28]}, minWireVersion=0, maxWireVersion=7, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=2008406}
Nov 30, 2022 9:41:43 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:8}] to localhost:27017

在这里插入图片描述
在这里插入图片描述请添加图片描述

在这里插入图片描述

请添加图片描述
在这里插入图片描述

请添加图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值