浅谈MongoDB和Redis安装与迁移(项目实战小结)

举报
真爱无敌 发表于 2018/11/12 14:01:02 2018/11/12
【摘要】 前言MongoDB和Redis都属于No-SQL类型的数据库,两者都采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于二者在内存映射的处理过程以及持久化的处理方法上有所不同。MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程的顺序写入,虽然支持集群,但是也仅限于主-从模式。现如今这两个数据库使用的人越来越多,并且也有越来越多的服务商将这些数据库打包为SA...

前言

MongoDB和Redis都属于No-SQL类型的数据库,两者都采用结构型数据存储。二者在使用场景中,存在一定的区别,这也主要由于

二者在内存映射的处理过程以及持久化的处理方法上有所不同。

MongoDB建议集群部署,更多的考虑到集群方案,Redis更偏重于进程的顺序写入,虽然支持集群,但是也仅限于主-从模式。


现如今这两个数据库使用的人越来越多,并且也有越来越多的服务商将这些数据库打包为SAAS服务提供给开发者、用户等进行试用。

今天主要就来看看如何自行在服务器上安装MongoDB和Redis,并且在业务需要的情况下如何进行数据的迁移。


安装

1.Redis4.0.X安装(Centos7环境下安装)

1.1Redis安装方式

Redis有两种安装方式:

1)通过wget下载安装包或者到服务器下载安装包自行解压编译安装

wget http://download.redis.io/releases/redis-4.0.2.tar.gz

具体的版本型号可以到redis官网查看(redis官方下载地址:https://redis.io/download

找到最新的redis安装包进行下载(截至发文时,最新版本已经到5.0.0了,更新真的挺快啊)

image.png

然后就是解压编译,通过工具将redis安装文件上传至 /usr/local/src

(上传方式此处就不多说,可以用xftp工具或者使用rzsz命令来上传)

进入/usr/local/src目录,解压redis

#cd /usr/local/src/redis-4.0.2
#make

然后配置相应的端口和密码以及相应的配置文件等,即可启动redis服务

REDISPORT=6379  #端口
EXEC=/usr/local/redis/redis-server  #启动文件地址,根据实际路径配置
REDIS_CLI=/usr/local/redis/redis-cli  #客户端文件,根据实际路径配置
PIDFILE=/var/run/redis_6379.pid   #PID文件,根据实际路径配置
CONF="/usr/local/redis/redis.conf"   #配置文件,根据实际路径填写
AUTH="123456"  #密码


#systemctl start redis  ==>启动Redis服务
#systemctl status redis   ==>查看Redis状态
#systemctl stop redis   ==>关闭Redis服务


2)直接yum方式安装(★推荐)

1.首先检查是否有redis yum源

[root@localhost ~]# yum install redis 
已加载插件:fastestmirror
base | 3.6 kB 00:00 
docker-ce-edge | 2.9 kB 00:00 
docker-ce-stable | 2.9 kB 00:00 
extras | 3.4 kB 00:00 
updates | 3.4 kB 00:00 
extras/7/x86_64/primary_db | 145 kB 00:00 
Loading mirror speeds from cached hostfile
* base: mirrors.sohu.com
* extras: mirrors.sohu.com
* updates: mirrors.sohu.com
没有可用软件包 redis。
错误:无须任何处理


2.下载fedora的epel库

[root@localhost ~]# yum install epel-release


3.安装Redis数据库

[root@localhost ~]# yum install -y redis


4.安装完成后,使用如下命令来操作数据库(启动、关闭、查看状态等)

# 启动redis
service redis start  或者  systemctl start redis
# 停止redis
service redis stop  或者  systemctl stop redis
# 查看redis运行状态
service redis status  或者  systemctl status redis
# 查看redis进程
ps -ef | grep redis


5.设置开机自启动

[root@localhost ~]# systemctl enable redis


6.使用Redis服务

# 进入本机redis
redis-cli
# 列出所有key
keys *


7.防火墙开放相应的端口

# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
# 开启6379端口
firewall-cmd --zone=public --add-port=6379 --permanent
# 重新加载防火墙策略
firewall-cmd --reload
# 查看防火墙端口开放情况
firewall-cmd --zone=public --list-ports


1.2Redis配置

Redis的配置主要涉及到端口和密码

1)打开配置文件

[root@localhost ~]# vi /etc/redis.conf

2)修改默认端口,查找port 6379修改为相应的端口即可

image.png

3)修改默认密码,查找requirepass foobared , 将foobared修改为你的密码即可

image.png


4)使用配置文件启动redis

[root@localhost ~]# redis-server /etc/redis.conf


5)登录redis

[root@localhost ~]# redis-cli -h 127.0.0.1 -p 6179

此时再输入命令会报错:

image.png

需输入之前设置的密码

127.0.0.1:6179>auth 111

image.png


1.3使用RDM连接Redis

1)访问如下网址下载Redis Desktop Manager

https://redisdesktop.com/download

image.png

2)打开RDM连接数据库

image.png


连接成功后如下图所示:

image.png

可以在这个基础上看到数据库的响应数据(一般都是用于用户的token等场景。)


3)异常情况

image.png

有可能会长时间连接不上服务器,一般有以下可能性:

a)bind了127.0.0.1:只允许在本机连接redis

b)protected-mode设置了yes(使用RDM连接redis的话需要配置为no)

c)防火墙没有开启6179端口


解决办法:

# 打开redis配置文件
vi /etc/redis.conf
# 找到 bind   127.0.0.1 将其注释
# 找到   protected-mode yes 将其改为
protected-mode no  

# 重启redis
systemctl stop redis
systemctl start redis


1.4使用JAVA代码连接Redis

image.png


至此,关于Redis的安装配置已告一段落。



2.MongoDB安装(Centos7环境下安装)

一、配置mongodb的yum源
vi /etc/yum.repos.d/mongodb-org-4.0.repo
添加一下内容:
[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1

更新yum
yum update

二、安装mongodb
yum -y install mongodb-org

安装后可以查看mongodb安装位置:
whereis mongod
mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1

三、修改配置文件
vi /etc/mongod.conf
#修改端口和bindIp(注意冒号后面有个空格)
port: 27017  ==>  port: 27018
bindIp: 127.0.0.1 ==> bindIp: 0.0.0.0

四、启动MongoDB

systemctl start mongod.service  #启动mongodb
systemctl stop mongod.service  #停止mongodb
systemctl status mongod.service  #查看mongodb状态
systemctl enable mongod.service  #添加到开机自启项

五、连接mongodb

mongo --port 27017  #指定端口连接
show dbs  #查看库


创建数据库
use test


db.test.insert({'name':'test'});

六、创建用户

db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

#具体mongodb对应的角色说明参考: https://www.cnblogs.com/SamOk/p/5162767.html

常用命令:
show dbs;
show users;
db;
db.getName();
use admin;
db.createUser(""):
db.dropUser(""):



七、开启认证
修改配置文件   vi /etc/mongod.conf
security:
    authorization: enabled

然后重启:systemctl restart mongod.service  #重启mongodb

访问后开启认证:db.auth("admin","123");

八、备份与恢复

1、备份语法:
    
mongodump -h dbhost -d dbname -o dbdirectory
    参数说明:
      -h: MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
      -d: 需要备份的数据库实例,例如:test
      -o: 备份的数据存放位置,例如:/home/mongodump/,当然该目录需要提前建立,这个目录里面存放该数据库实例的备份数据。
   -c: 需要恢复的集合
   -f: 需要导出的字段(省略为所有字段)
   -u:用户名
   -d:用户密码
  mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory

1.全库备份:
mongodump -d vkepai -h 127.0.0.1:27087 -u vkp_pro -p vkePai2o2o -o /home/mongobak
mongodump -h 127.0.0.1:27087 -uroot -pR1o2o3t --authenticationDatabase vkepai  -o /home/mongobak
2.备份test库
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -o /home/mongod/backup/
3.备份test库下的vast集合
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/
4.压缩备份库
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -o /home/mongod/backup/ --gzip
5.压缩备份单表
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/ --gzip

2、恢复语法:
    mongorestore -h dbhost -d dbname --dir dbdirectory
    参数或名:
      -h: MongoDB所在服务器地址
      -d: 需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
      --dir: 备份数据所在位置,例如:/home/mongodump/test/
      --drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用!


mongorestore -h 127.0.0.1:27017 -u test -p test123 -d vkepai --dir /home/mongodump/test/

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。