MongoDB-CRUD&运维工具介绍以及授权认证
MongoDB-CRUD
1.介绍
1.1 CRUD 操作是 create(创建), read(读取), update(更新)和 delete(删除) 文档。
1.2 MongoDB 不支持多文档事务(mongodb4.0 开始支持 ACID)。但是 MongoDB 确实在一个文档上提供了原子操作。尽管集合中的文档通常都是相同的,但是 MongoDB 中的集合不需要指定 schema。
1.3 MongoDB 不支持 SQL 但是支持自己的丰富的查询语言。
1.4 在 MongoDB 中,存储在集合中的每个文档都需要一个唯一的 _id 字段,作为主键。如果插入的文档省略了该_id 字段,则 MongoDB 驱动程序将自动为该字段生成一个 ObjectId_id。也用于通过更新操作插入的文档upsert: true.如果文档包含一个_id 字段,该_id 值在集合中必须是唯一的,以避免重复键错误。
1.5 在 MongoDB 中,插入操作针对单个集合。 MongoDB 中的所有写操作都是在单个文档的级别上进行的
2.显示命令Help: 显示帮助。db.help() 显示数据库方法的帮助 ...
MongoDB-4.0.18介绍与C7下的二进制安装
1.背景介绍:1.1关系型于非关系型
NoSQL(not only sql)指的是 非关系型的数据库
NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。
对NoSQL是普遍的解释是”非关联型的”,强调 Key-Value Stores 和 文档数据库的优点,而不是单纯的RDBMS。
NoSQL用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
1.2Mongo和MySQL数据对比1.2.1结构对比:
MySQL
MongoDB
库
库
表
集合
字段
Key:Value
记录行
文档
1.2.2内容对比:12345678910## mysql数据结构:name age job hostoldzhang 28 it xiaozhang 28 itxiaofei 18 student SZ## mongo数据结构:{name:'oldzhang',age:'28 ...
Redis-维护工具&常用命令总结
1.Redis 集群常用命令1.1集群(cluster)
CLUSTER INFO 打印集群的信息
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
1.2节点(node)
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。
1.3槽(slot)
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS 移除指 ...
Redis-Cluster 分布式高可用集群
1.redis cluster 分布式集群介绍1.1高性能:
在多分片节点中,将16384个槽位,均匀分布到多个分片节点中
存数据时,将key做crc16(key),然后和16384进行取模,得出槽位(0-16383)
根据计算得出的槽位值,找到想对应的分片节点的主节点,存储到相应槽位上
如果客户端当时连接的节点不是将来要存储的分片节点,分片集群会将客户端连接却换至真正存储节点进行数据存储
1.2高可用:在搭建集群时,会为每一个分片的主节点,对应一个从节点,实现slaveof的功能,同时当主节点down,实现类似于sentinel的自动fileover的功能。
redis会为多组分片构成(3组)
redis cluster 使用固定个数的slot存储数据(一个16384slot)
每组分片分得1/3 slot个数(0-5500 5501-11000 11001-16383)
基于CRC16(key)% 16384 –> 值 (槽位号)
1.3分布式架构部署6个redis实例,一般会放到3台硬件服务器
Role
IP
Port
Server ...
Redis-主从复制&数据恢复&故障处理&哨兵的故障转移
1.redis主从复制准备工作12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061使用rsync服务将db01目录下已经编译好的redis安装目录推送到从节点db02上。[root@db01 ~]# rsync -avz -e "ssh -p 22" /application/redis_cluster root@10.0.0.52:/application/检查db02:[root@db02 ~]# tree /application/redis_cluster/ -L 1/application/redis_cluster/├── redis -> /application/redis_cluster/redis-5.0.5/├── redis-3.2.12├── redis-5.0.5└── redis_6379修改配置文件:[root@db02 ~]# cat /applicat ...
Redis-数据类型&持久化&安全认证和配置的热更新
1.全局命令Redis 有 5 种数据结构,他们是键值对中的值,对于键来说有一些通用的命令.
1.1 查看所有命键Keys * // 十分危险的命令,线上禁止使用
1.2 查看键的总数Dbsize // dbsize 命令在计算键总数时不会遍历所有键,而是直接获取 Redis 内置的键总数变量.
1.3 检查键是否存在Exists key // 如果键存在则返回 1,不存在则返回 0
1.4 删除键Del key [key …] // 通用命令,无论值是什么数据结构类型,del 命令都可以将其删除.
1234127.0.0.1:6379> DEL key3(integer) 1 //存在并成功删除127.0.0.1:6379> EXISTS key3(integer) 0 //不存在,且删除失败
1.5 键过期Expire key seconds // Redis 支持对键添加过期时间,当超过过期时间后,会自动删除键.// 通过 ttl 命令观察键的剩余时间大于等于 0 的证书: 键剩余过期时间
-1: 键没设置过期时间
-2: 键不存在
PERSIST key//去掉 ...
Redis-5.0.5介绍与C7下的编译安装
0 Redis 是什么
Redis 是一种基于键值对的 NoSQL 数据库,与很多键值对数据库不同,redis 中的值可以有string,hash,list,set,zset,geo 等多种数据结构和算法组成.
Redis 会将所有的数据都放在内存中,所以他的读写性能非常惊人.Redis 还可以将内存中的数据利用快照和日志的形式保存到硬盘上
Redis 提供了键过期,发布订阅,事务,流水线等附加功能.
0.2 Redis 重要特性
1.速度快
Redis 所有的数据都存放在内存中
Redis 使用 C 语言实现
Redis 使用单线程架构
2.基于键值对的数据结构服务器
5 中数据结构:字符串,哈希,列表,集合,有序集合
3.丰富的功能
提供了键过期功能,可以实现缓存
提供了发布订阅功能,可以实现消息系统
提供了 pipeline 功能,客户端可以将一批命令一次性传到 Redis,减少了网络开销
4.简单稳定
源码很少,3.0 版本以后 5 万行左右.
使用单线程模型法,是的 Redis 服务端处理模型变得简单.
不依赖操作系统的中的类库
5.客户端语言多
ja ...
MySQL终章-系列优化
0.环境准备:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859准备100w行数据包,留作压力测试。db03 [(none)]>create database oldboy;Query OK, 1 row affected (0.00 sec)db03 [(none)]>use oldboy;Database changeddb03 [oldboy]>create table t100w ( -> id int,num int, -> k1 char(2), -> k2 char(4), -> dt timestamp) charset utf8mb4 collate utf8mb4_bin;Query OK, 0 rows affected (0.01 sec)db03 [oldboy]>delimiter //db03 [oldboy]>c ...
MySQL-MyCAT多主多从环境下实现表的水平拆分
0.水平拆分算法范围分片:数据进行范围分割,分布到不同的节点上取模分片:通过将数据行的id值和节点数量进行取模得到的余数=节点编号(从0开始),从而实现将数据行平均分布到各个节点枚举分片:数据通过省市等等范围进行枚举分片。不同地区或者不同条件的数据归类到一个节点时间分片:对数据按照时间进行归纳,分布到不同的节点上
1.范围分片:1.1适用情况
(1)行数非常多,2000w(1-1000w:sh1 1000w01-2000w:sh2)
(2)访问非常频繁,用户访问较离散
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566//定义哪张表要被分片[root@db02 /application/mycat/conf]# cat >schema.xml <<'EOF'<?xml version="1.0"?><!DOCTY ...
MySQL-MyCAT多主多从环境下实现表的垂直拆分
0.双主环境搭建参见:https://pincheng.org/forward/d3c702fe.html
1.垂直拆分:
2.mycat垂直分表2.1配置文件1234567891011121314151617181920212223242526272829303132[root@db02 ~]# cd /application/mycat/conf/[root@db02 /application/mycat/conf]# mv schema.xml schema.xml.ha[root@db02 /application/mycat/conf]# cat >schema.xml <<'EOF'<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><schema name="T ...