每周总结【2020/10/24】————Redis与Mongodb初学

  本周学习了Redis和Mongodb两个数据库知识,操作环境均为Linux。复习Hbase的API操作,JavaWeb知识(征集系统)。着重说明Redis和Mongodb的知识点

  安装:

  Redis:

环境:Linux环境下Redis包,虚拟机(Ubuntu-18.04)

首先安装gcc:sudo apt-get build-dep gcc || sudo apt-get install build-essential

之后解压Redis包:tar -zxvf 【包名】 -C 【解压到的目录】

解压后进入到目录,开始操作:1.make (没有成功安装gcc的话这里会报错)

                 2.make install  PREFIX=【指定目录】(安装到指定目录)

安装成功后进入bin文件夹,会发现6个文件,但是没有redis.conf文件,这个文件需要去之前解压包时指定的目录下去找,将其复制到安装目录的bin文件夹下。最后bin应该含以下文件:

 

 之后修改redis.conf文件下的配置:

 

 bind修改成0.0.0.0,意思是任意ip均可访问,这样可以使用redis可视化工具或者java从外部进行访问。若将redis部署到服务器,记得设置密码,否则别人可以随意访问你的redis。

下面那条就是关闭安全模式。外网访问需要配置这两项。

——————————————————————————————

如果是前台启动,在bin目录下执行语句:./redis-server就可以了,但是前台启动的弊端就是当前界面不可以关闭,也做不了其他操作,因此我们需要后台开启,依然是配置redis.conf:

 

 最后给redis设置个密码:

 

 密码为123456。

配置好后在bin目录下使用命令:./redis-server ./redis.conf启动。

若想使用shell命令操作,则启动客户端:./redis-cli -a 【密码】

——————————————————————————————

其他配置:

redis无法写入数据时:redis.conf

 

 把这里改成no。

这种方法是一次性解决,临实方法可以在客户端内输入命令解决:config set stop-writes-on-bgsave-error no

  Mongodb:

环境:Linux环境下Mongodb包,虚拟机(Ubuntu-18.04)

解压操作省略,Mongodb需要配置环境变量:vim /etc/profile

 

 之后生成环境变量:source /etc/profile

切换到解压的mongo文件目录下,注意与bin同级,创建data文件夹,再进入新创建的data文件夹内,创建db文件夹:

 

 随后在与bin和data同级的目录下建立logs文件夹(上方左图可以看到logs),在其内创建mongodb.log文件

再进入bin目录配置mongodb.conf文件(此配置用于java外部连接mongodb,且根据该文件启动为后台启动mongodb,默认为前台启动,情况与redis相同)

 

 

 dbpath与logpath对应之前建立的/data/db和/logs/mongodb.log路径

启动Mongodb服务:进入bin目录下输入命令:./mongo -f mongodb.conf

进入管理后台:./mongo

  JAVA操作

  Redis:

连接(jedis.auth为密码校验,若没有设置密码不用写):

1  private static Jedis jedis;
2     @Before
3     public static void setJedis(){
4         jedis=new Jedis("192.168.132.128",6379);
5         jedis.auth("123456");
6         System.out.println("连接成功!");
7     }

对数据的操作:

 1 @Test
 2     public static void testMap(){
 3         //添加
 4         Map<String,String>map=new HashMap<String, String>();
 5         map.put("English","45");
 6         map.put("Math","89");
 7         map.put("Computer","100");
 8         jedis.hmset("scofiled",map);
 9         //显示指定数据
10         System.out.println("获取English值:");
11         Iterator<String> iterator=jedis.hkeys("scofiled").iterator();
12         while(iterator.hasNext()){
13             String key=iterator.next();
14             if(key.equals("English")){
15                 System.out.println(key+":"+jedis.hmget("scofiled",key));
16             }
17         }
18     }

  Mongodb:

连接:

1 public static MongoDatabase getConn(){
2         MongoClient mongoClient=new MongoClient("192.168.132.128",27017);
3         //连接数据库"test"
4         MongoDatabase mongoDatabase=mongoClient.getDatabase("test");
5         System.out.println("已连接数据库");
6         return mongoDatabase;
7     }

对数据的操作:

 1 @Test
 2     //添加
 3     public static void insert(MongoDatabase mongoDatabase){
 4         //连接表"Student",若没有表则创建该表
 5         MongoCollection<Document> collection=mongoDatabase.getCollection("Student");
 6         Document d=new Document("English","45").append("Math","89").append("Computer","100");
 7         Document document=new Document("name","scofiled").append("score",d);
 8         collection.insertOne(document);
 9         System.out.println("添加成功");
10     }
11     @Test
12     //按条件查找且显示指定数值
13     public static void findTest(MongoDatabase mongoDatabase) {
14         MongoCollection<Document>collection=mongoDatabase.getCollection("Student");
15         BasicDBObject condition=new BasicDBObject();
16         condition.put("name","scofiled");
17         BasicDBObject key=new BasicDBObject();
18         key.put("score",1);
19         MongoCursor<Document>iterator=collection.find(condition).projection(key).iterator();
20         System.out.println("学生scofiled的score数据为");
21         while (iterator.hasNext()){
22             System.out.println(iterator.next());
23         }
24     }
 1 @Test
 2     //修改
 3     public static void updatetest(){
 4         MongoCollection<Document>collection=mongoDatabase.getCollection("model");
 5         Bson filter= Filters.eq("name","tryuser");
 6         Document document=new Document("$set",new Document("name","UPDATEUSER"));
 7         collection.updateOne(filter,document);
 8         System.out.println("更改成功");
 9     }
10     @Test
11     //删除
12     public static void deletetest(){
13         MongoCollection<Document>collection=mongoDatabase.getCollection("model");
14         Bson filter= Filters.eq("name","UPDATEUSER");
15         collection.deleteOne(filter);
16         System.out.println("删除成功");
17     }

  PS:提供的java操作数据库并不完整,其他操作可以查阅资料。

  今僕は勉強しています!

posted @ 2020-10-24 21:28  千幽行  阅读(97)  评论(0编辑  收藏  举报