随笔分类 -  数据库(sql 与mysql 和mongodb还有 redis)

关于一些数据库的从新书写。
摘要:前言 简单整理一下sql的计算函数。 正文 函数没有SQL的可移植性强 能运行在多个系统上的代码称为可移植的(portable)。相对来说,多数SQL语句是可移植的,在SQL实现之间有差异时,这些差异通常不那么难处理。 而函数的可移植性却不强。几乎每种主要的DBMS的实现都支持其他实现不支持的函数, 阅读全文
posted @ 2021-09-23 23:03 敖毛毛 阅读(280) 评论(0) 推荐(0)
摘要:前言 简单介绍一下sql 高级过滤。 正文 首先简单介绍一下通配符,用来匹配值的一部分的特殊字符。 搜索模式(search pattern)① 由字面值、通配符或两者组合构成的搜索条件。 前面介绍操作符,通配符是对操作符的一种补充,操作符都确认的,而通配符属于模糊的。 下面介绍几个例子: % 通配符 阅读全文
posted @ 2021-09-22 15:42 敖毛毛 阅读(264) 评论(0) 推荐(0)
摘要:前言 简单整理一下MySQL的排序与过滤。 正文 我们查询出来的结果有时候是希望进行排序的,比如说: select product_name from products order by prod_name 经常需要按不止一个列进行数据排序。例如,如果要显示雇员清单,可能希望按姓和名排序(首先按姓排 阅读全文
posted @ 2021-09-22 12:34 敖毛毛 阅读(363) 评论(0) 推荐(0)
摘要:前言 简单整理一下sql 正则表达式。 正文 正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取电话号码,可以使用正则表达式。如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式。如果你想在一个文本块中找到所有重复的单词,可以使用一个正则表达式。 如果你想替换一个 阅读全文
posted @ 2021-09-21 20:20 敖毛毛 阅读(485) 评论(0) 推荐(0)
摘要:前言 简单整理一下sql 排序与过滤。 正文 在这里需要创建一下一个数据库实例。 为了方便直接用docker 创建一下啊,方便简洁。 https://hub.docker.com/_/mysql 按照上面安装一下。 有几个基本的数据库状态需要了解一下。 显示有多少数据库: show database 阅读全文
posted @ 2021-09-21 09:47 敖毛毛 阅读(143) 评论(0) 推荐(0)
摘要:前言 简单整理一下缓存设计。 正文 缓存的好处: ·加速读写:因为缓存通常都是全内存的(例如Redis、Memcache),而 存储层通常读写性能不够强悍(例如MySQL),通过缓存的使用可以有效 地加速读写,优化用户体验。 ·降低后端负载:帮助后端减少访问量和复杂计算(例如很复杂的SQL 语句), 阅读全文
posted @ 2021-09-20 12:31 敖毛毛 阅读(232) 评论(0) 推荐(0)
摘要:前言 对mysql 进行简介。 正文 mysql 是一种数据库,那么什么是数据库呢? 数据库是一个以某种有组织的方式存储的数据集合。 也就是说数据有某种组织规律的就叫做数据库。 数据库(database) 保存有组织的数据的容器(通常是一个文件或一组文件)。 数据库里面有表哈,那么什么是表呢? 表是 阅读全文
posted @ 2021-09-20 11:10 敖毛毛 阅读(138) 评论(0) 推荐(0)
摘要:前言 简单介绍一下哨兵的原理。 正文 一套合理的监控机制是Sentinel节点判定节点不可达的重要保证,Redis Sentinel通过三个定时监控任务完成对各个节点发现和监控: 1)每隔10秒,每个Sentinel节点会向主节点和从节点发送info命令获取 最新的拓扑结构。 例如下面就是在一个主节 阅读全文
posted @ 2021-09-19 11:34 敖毛毛 阅读(135) 评论(0) 推荐(0)
摘要:前言 简单介绍一下客户端的哨兵模式连接。 正文 Sentinel节点集合具备了监控、通知、自动故障转移、配置提供者若干 功能,也就是说实际上最了解主节点信息的就是Sentinel节点集合, 而各个 主节点可以通过进行标识的,所以,无论是哪种编程语言的 客户端,如果需要正确地连接Redis Senti 阅读全文
posted @ 2021-09-19 10:31 敖毛毛 阅读(458) 评论(0) 推荐(0)
摘要:前言 简单介绍一下哨兵的部署业务图,非部署步骤。 正文 看一下部署的拓扑图: 然后这里用docker 来部署一下哨兵模式。 搭建一主二从。 version: '3.7' services: master: image: redis container_name: redis-master resta 阅读全文
posted @ 2021-09-18 22:24 敖毛毛 阅读(112) 评论(0) 推荐(0)
摘要:前言 简单介绍一下哨兵模式。 正文 Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人 工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多 应用场景这种故障处理的方式是无法接受的。 也就是我们前面提及的主从复制的模式下,主和从是固定的,当主宕机后,那么只能等待主的恢复 阅读全文
posted @ 2021-09-12 19:55 敖毛毛 阅读(80) 评论(0) 推荐(0)
摘要:前言 简单介绍一下内存的优化。 正文 Redis所有的数据都在内存中,而内存又是非常宝贵的资源。如何优化内存的使用一直是Redis用户非常关注的问题。本节深入到Redis细节中,探索内存优化的技巧。 redisObject对象 Redis存储的所有值对象在内部定义为redisObject结构体,内部 阅读全文
posted @ 2021-09-07 09:19 敖毛毛 阅读(419) 评论(0) 推荐(0)
摘要:前言 redis 是一个内存型数据库,那么就需要重点关注一下内存了。 正文 理解Redis内存,首先需要掌握Redis内存消耗在哪些方面。有些内存消 耗是必不可少的,而有些可以通过参数调整和合理使用来规避内存浪费。 内存消耗可以分为进程自身消耗和子进程消耗。 首先需要了解Redis自身使用内存的统计 阅读全文
posted @ 2021-09-06 18:03 敖毛毛 阅读(171) 评论(0) 推荐(0)
摘要:前言 简单介绍一下redis的阻塞问题。 正文 Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成 的。当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现 阻塞,哪怕是很短时间,对于我们的应用来说都是噩梦。 ·内在原因包括:不合理地使用API或数据结构、CPU饱和、持 阅读全文
posted @ 2021-09-05 13:10 敖毛毛 阅读(1227) 评论(0) 推荐(0)
摘要:前言 简单介绍一下开发和运维中的问题。 正文 从上文中介绍了,我们有了一个副本了,通过复制的方式。 这些副本可以应用于读写分 离、故障转移(failover)、实时备份等场景。 那么可以关注一些开发和运维的一些问题。 对于读占比较高的场景,可以通过把一部分读流量分摊到从节点 (slave)来减轻主节 阅读全文
posted @ 2021-09-04 08:53 敖毛毛 阅读(140) 评论(0) 推荐(0)
摘要:前言 简单介绍一下复制的原理。 正文 在从节点执行slaveof命令后,复制过程便开始运作,下面详细介绍建立 复制的完整流程。 1)保存主节点(master)信息。 执行slaveof后从节点只保存主节点的地址信息便直接返回,这时建立复 制流程还没有开始,在从节点6380执行info replica 阅读全文
posted @ 2021-09-03 18:48 敖毛毛 阅读(324) 评论(0) 推荐(0)
摘要:前言 Redis的复制拓扑结构可以支持单层或多层复制关系,根据拓扑复杂性 可以分为以下三种:一主一从、一主多从、树状主从结构,下面分别介绍。 正文 一主一从结构 一主一从结构是最简单的复制拓扑结构,用于主节点出现宕机时从节点 提供故障转移支持. 当应用写命令并发量较高且需要持久化时,可以只在从节点上 阅读全文
posted @ 2021-09-02 09:38 敖毛毛 阅读(468) 评论(0) 推荐(0)
摘要:前言 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到 其他机器,满足故障恢复和负载均衡等需求。Redis也是如此,它为我们提 供了复制功能,实现了相同数据的多个Redis副本。复制功能是高可用Redis 的基础,后面章节的哨兵和集群都是在复制的基础上实现高可用的。 正文 参与复制的R 阅读全文
posted @ 2021-08-31 15:34 敖毛毛 阅读(104) 评论(0) 推荐(0)
摘要:前言 Redis持久化功能一直是影响Redis性能的高发地,简单介绍一下持久化的问题定位和优化。 正文 当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创 建子进程,对于大多数操作系统来说fork是个重量级错误。 虽然fork创建的 子进程不需要拷贝父进程的物理内存空间,但 阅读全文
posted @ 2021-08-30 14:19 敖毛毛 阅读(426) 评论(0) 推荐(0)
摘要:前言 简单介绍一下AOF。 正文 AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。 AOF的主要作用 是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。理解 掌握好AOF持久化机制对我们兼顾数据 阅读全文
posted @ 2021-08-29 12:34 敖毛毛 阅读(275) 评论(0) 推荐(0)