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
安装步骤
下载归档解压缩
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)