爬虫储存——redis读写分离,哨兵监控。MongoDB配置

解读什么叫nosql

redis

首先我们需要配置内网地址和端口
需要修改端口避免被攻击
这里写图片描述
配置密码
这里写图片描述
端口在65535以下
配置将Redis服务绑定到指定的IP地址和端口。
这里写图片描述
这里写图片描述
由于redis储存都是缓存,在我们关闭服务器后下次打开里面的数据就没有了,
因此有两种持久化方案
1 RDB
这里写图片描述
这里写图片描述
2 AOF
这里写图片描述
两种都要用 先用aof如果没有就用rdb
这样设置好了就可以等于储存永久了,因为系统把数据存在文件里面,每次打开都会读取你的操作和内容

REPLICATION主从复制,读写分离

表示一个负责写入,剩下的负责读取,
因此就有master和slave,主人负责写,奴隶负责读取,并且奴隶只能读取
进入redis后

info replication

输入:info replication可以查看自己当前身份

    192.168.0.4:1234> info replication
    # Replication
    role:master
    connected_slaves:0
    master_repl_offset:0
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0

如何配置奴隶:

我们可以通过redis-server redis.conf来开启多个redis服务
因此找到根目录下/etc/redis/redis.cof
复制下来到设定的目录,多复制几个然配置不同的端口,这样一台电脑上就可以开启多个服务
配置的时候:需要在cof文件里设置主人的ip端口和密码
这里写图片描述

如何成为奴隶

当奴隶slaveof ip端口

如何不当奴隶

slaveof no one

设置哨兵

为什么需要设置,是因为在比如master挂了的时候这个时候需要有新的master去替代它所以需要设置这样的监控对象
配置哨兵:需要设置哨兵监控的master和时间间隔,然后设置间隔多久master连上来失效还是当奴隶
这里写图片描述
注意端口后面跟的数字表示最后选取随时master的机制。一般设置为1
下面是写的主机master的密码
这里写图片描述
这里写图片描述
上面表示设置多长时间核实master有没有挂,下面表示多长时间后不允许挂掉的服务器再链接

启动哨兵

启动redis-server 文件名 –sentinel

负载均衡

一般通过后台链接的不是某个redis的master,而是链接通过负债均衡去判断你连接哪个
这里写图片描述

拓展

在python中原型复制

比如调用哈西算法的时候可以直接复制它,而不是再去调用底层数据
效率要高很多,不用再去调用
hasher_proto = sha1()
hasher = hasher_proto.copy()

设置存活时间

ttl 表示查看存活时间,如果是-1表示没设置,-2表示已经过期了
ex 表示设置存活时间
set fo qwer ex 10(fo存活10秒)

MongoDB

安装步骤

python链接mongodb

下载归档解压缩
1. https://www.mongodb.com/download-

center#atlas
2. wget <url>
3. gunzip <filename>
4. tar -xvf <filename>
5. 改名并移动mv  xxx/usr/local/newxxx(改名方便在配置变量的时候输入正确)
6. 修改环境变量vim .bash_profile
PATH=...:/usr/local/名字/bin
7. 重启变量source .bash_profile
echo %PATH 查看环境变量
8. 创建文件才能执行mkdir -p /data/db
9. 启动 mongod
默认的端口27017
10. 配置防火墙
11. 链接mongo

启动MongoDB

如果想启动后指定ip

mongod --bind_ip xxxx(内网地址)

链接服务器

mongo --host 外网地址

查看后台提取后台

jobs 查看后台进程
fg %1 把后台提出来

MongoDB的增删改查

创建:db.xxx.insert_one({xxx:xxx})  多个:insert_many([{},{},{}])
查找:db.xxx.find()
更新:db.xxx.update({更新的位置},{'$set':{添加数}})
或者:({},'$set':{},{},upsert=True)表示如果有这个位置就更新,没有就添加新的

删除:remove({位置})

用pycharm链接MongoDB

需要下载pymongo
链接数据库

    client = pymongo.MongoClient('mongodb://180.76.154.142:27017/')

然后操作就是一样的 需要说明的是既然是字典形式。因此可以字典套字典

# 类似建好数据库
db = client.zhihu
# 建好文档-集合
pages_cache = db.pages
# 创建值
pages_cache.insert_one({
    'url': 'www.fjal;',
    'boom': {
        'name': '海飞丝',
        '说明': 'sb'
    }
})
# 删除
pages_cache.remove({'url':'www.fjal'})
# 更新
pages_cache.update({'url': 'www.fjal;'}, {'$set': {'age': 88}}, upsert=True)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值