本周学习了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操作数据库并不完整,其他操作可以查阅资料。
今僕は勉強しています!
每周总结【2020/10/24】————Redis与Mongodb初学
原文:https://www.cnblogs.com/20183711PYD/p/13871153.html