redis目前还不支持批量删除key的命令,但是我们有时需要删除符合某个规则的keys,可以利用 Linux 命令查询出所有的key,然后一次性删除。
完整命令:
./redis-cli -h 127.0.0.1 -n 1 -a 123456 --no-auth-warning keys "jackey:20...
package main
import (
"context"
"fmt"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
"time"
)
var Mong...
分片集群添加数据角色,连接到路由角色里面配置,数据角色为副本集的方式
/usr/local/mongodb/bin/mongo 127.0.0.1:27017
sh.addShard("shijiangedata1/127.0.0.1:29017,127.0.0.1:29018")
sh.addShard("shijiangedata2/127.0.0.1:...
数据角色
分片集群的数据角色里面存储着真正的数据,所以数据角色一定得使用副本集
多个数据角色
mongodb的数据角色搭建,配置文件/data/mongodb/29017/mongodb.conf
systemLog:
destination: file
logAppend: true
...
router说明
mongodb中的router角色只负责提供一个入口,不存储任何的数据
router角色的搭建,配置文件/data/mongodb/27017/mongodb.conf
systemLog:
destination: file
logAppend: true
path: /data/mong...
mongodb分片
一般用得比较少,需要较多的服务器,还有三种的角色
一般把mongodb的副本集应用得好就足够用了,可搭建多套mongodb复本集
mongodb分片技术
mongodb副本集可以解决数据备份、读性能的问题,但由于mongodb副...
mongodb监控
使用Python去监控mongodb状态
获取mongodb的serverStatus状态信息,一般状态信息需要每个实例都进行监控
import pymongo
client = pymongo.MongoClient('127.0.0.1',27017)
db = client.admin
serv...
使用程序操作mongodb
mongodb可以使用java、python、php等语言去操作
运维使用Python居多,介绍使用python操作Mongodb数据库
使用python操作mongodb,需要使用pip安装pymongo模块
yum install epel-release -y
yum ins...
mongodb的备份和恢复
单台服务器一定需要备份
mongodb有提供mongodump工具用来备份数据
mongodb也有提供mongorestore工具用来恢复数据
mongodb备份说明,指定ip和端口
单台服务器直接使用mongodump进行备份
副本集需...
mongodb副本集伸缩说明
mongodb副本集的扩展非常好,往副本集里添加实例和移除实例都非常方便
往mongodb副本集添加实例数据能够自动同步,无需人工干预
往现有mongodb副本集中添加实例
创建27020实例,注意副本集名称要...
mongodb副本集的主的选举
primary的选举依赖于各个实例的优先权重,默认权重都是1
复本集的主挑选权重最高的,权重一样的无法控制谁为主
设置各个实例的优先权重,挑选自己想要的实例为主,只有primary可以更改权重配置
...
mongodb的副本集自动切换
mongodb的副本集当primary挂了,会挑选其中的一台secondary升为主
挑选其中一台secondary升级为primary的条件是剩下的集群台数>=2
如果集群只剩下一个实例的话,会有异常
mongodb副本集自动...
mongodb单台服务器
数据会有丢失的风险
单台服务器无法做高可用性
mongodb副本集能够预防数据丢失,多台mongodb数据一致
mongodb副本集能够在有问题的时候自动切换
实战说明
使用两台服务器实战mongodb副本集,生产环...
mongodb实时监控之mongostat
mongostat可以实时监控mongodb的状态,一直刷新输出
/usr/local/mongodb/bin/mongostat --help
/usr/local/mongodb/bin/mongostat -h 127.0.0.1:27017
测试脚本
use shijiange
for(i=1; ...
mongodb数据准备
use shijiange
for(i=1; i<=500000;i++){
db.myuser.insert( {name:'mytest'+i, age:i} )
}
mongodb有慢查询的概念,默认是超过100ms会记录慢日志mongodb.log
db.getProfilingStatus()
...