浅谈MongoDB和Redis安装与迁移(项目实战小结)
前言
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了,更新真的挺快啊)
然后就是解压编译,通过工具将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修改为相应的端口即可
3)修改默认密码,查找requirepass foobared , 将foobared修改为你的密码即可
4)使用配置文件启动redis
[root@localhost ~]# redis-server /etc/redis.conf
5)登录redis
[root@localhost ~]# redis-cli -h 127.0.0.1 -p 6179
此时再输入命令会报错:
需输入之前设置的密码
127.0.0.1:6179>auth 111
1.3使用RDM连接Redis
1)访问如下网址下载Redis Desktop Manager
https://redisdesktop.com/download
2)打开RDM连接数据库
连接成功后如下图所示:
可以在这个基础上看到数据库的响应数据(一般都是用于用户的token等场景。)
3)异常情况
有可能会长时间连接不上服务器,一般有以下可能性:
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
至此,关于Redis的安装配置已告一段落。
2.MongoDB安装(Centos7环境下安装)
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 update
yum -y install mongodb-org
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
systemctl start mongod.service #启动mongodb
systemctl stop mongod.service #停止mongodb
systemctl status mongod.service #查看mongodb状态
systemctl enable mongod.service #添加到开机自启项
mongo --port 27017 #指定端口连接
show dbs #查看库
创建数据库
use test
db.test.insert({'name':'test'});
db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
show dbs;
show users;
db;
db.getName();
use admin;
db.createUser(""):
db.dropUser(""):
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
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
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -o /home/mongod/backup/
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -o /home/mongod/backup/ --gzip
mongodump -h 10.0.0.152:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/ --gzip
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/
- 点赞
- 收藏
- 关注作者
评论(0)