redis 数据库主从不一致问题解决方案

redis 数据库主从不一致问题解决方案 在聊数据库与缓存一致性问题之前,先聊聊数据库主库与从库的一致性问题。 问:常见的数据库集群架构如何? 答:一主多从,主从同步,读写分离。 如上图: (1)一个主库提供写服务 (2)多个从库提供读服务,可以增加从库提升读性能 (3)主从之间同步数据 画外音:任何方案不要忘了本心,加从库的本心,是提升读性能。 问:为什么会出现不一致? 答:主从同步有时延,这个时延期间读从库,可能读到不一致的数据。 如上图: (1)服务发起了一个写请求 (2)服务又发起了一
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

网鼎杯2020青龙组writeup-web

本文首发于Leon的Blog,如需转载请注明原创地址并联系作者 AreUSerialz 开题即送源码: 1 <?php 2 3 include("flag.php"); 4 5 highlight_file(__FILE__); 6 7 class FileHandler { 8 9 protected $op; 10 protected $filename; 11 protected $content; 12 13 function
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

如何集成一个第三方报表,权限怎么控制

在了解如何集成前,首先我们得找对易于集成的报表工具,什么样的报表易于集成? 1. 同平台的 比如:java 开发的项目找 java 开发的报表工具 2. 没有复杂系统功能的 因为含有复杂系统功能的报表工具,跟自己的报表门户平台集成会存在冲突,比如:用户管理体系,单点登录等。这时就不能做无缝集成了,只能进行跨系统调用。 如找到易于集成的报表工具后,其操作就相对简单了,比如 java 的,直接将报表应用放进自己的项目中统一管理就可以了,不易于集成的,需要单独部署、处理调用及单点登录,维护起来很麻烦
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

[Go] golang读取打包html文件到二进制

当在编译打包文件时,有时候html文件需要编译进二进制 , 可以使用这个包 github.com/gobuffalo/packr 当使用了go.mod的话 , 直接在代码中引入使用就行 , 运行或者编译时会自动把依赖下载下来 box := packr.NewBox("../static") content,err:=box.FindString("html/login.html") 这样读取到的字符串 , 再使用template包就可以了 , 编译后html也会被编译进去
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

redis理论部分

Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作, 定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB, 不像 memcached只能保存1MB的数据,因此Redi
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

守护进程-线程

#include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <stdlib.h> #include <signal.h> #include <sys/time.h> #include <time.h> #define _FILE_NAME_FORMAT_ "%s/log/mydaemon.%l
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

jsp第9个作业

regist.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML P
分类: 其他 发布时间: 05-19 22:17 阅读次数: 0

省选模拟98 题解

e
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

[UVA11987]Almost Union-Find

题目 传送门 题解 首先考虑,如果没有操作二,这道题将会是一道并查集板题。 现在我们考虑操作二怎么处理。 操作二难在哪里?难在如果 \(p\) 的父亲被修改,那么 \(p\) 以下的点将会是错误的根节点关系。 对于每一个修改 \(2\),我们将 \(p\) 的原点保留,只是将 \(p\) 和 \(q\) 的根节点信息修改一下,然后我们对于 \(p\) 建出一个新的虚点,将这个虚点连到 \(q\) 的并查集中即可。 代码实现中使用 has[u] 表示 \(u\) 这个时候对应的新的虚点是多少,用
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

初见QT---信号和槽

信号和槽作为QT的最大特点,因为有了信号与槽的编程机制,在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单。 举例来说明 信号和槽(传智播客经典举例) 伪代码说明 connect(信号的发送者,发送的具体信号,信号的接收者,信号的处理); 信号和槽的优点: 松散耦合,信号的发送端 和 接收端 本身没有关联,而是通过connect函数连接,将两端耦合在一起。 代码示例 1 #include "widget.h" 2 #include <QPushButton> //按钮控件的头文件
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

关于秒杀的场景特点分析

关于秒杀的场景特点分析 秒杀系统的场景特点 - 秒杀时大量用户会在同一时间同时进行抢购,网站瞬时访问流量激增; - 秒杀一般是访问请求量远远大于库存数量,只有少部分用户能够秒杀成功; - 秒杀业务流程比较简单,一般就是下订单操作; 秒杀架构设计理念 - 限流:鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端(暂未处理); - 削峰:对于秒杀系统瞬时的大量用户涌入,所以在抢购开始会有很高的瞬时峰值。实现削峰的常用方法有利用缓存或者消息中间件等技术; - 异步处理
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

Git,Github,gitee

Git : 版本控制工具,分布式版本控制工具 优势: 1.大部分操作可在本地完成,不需要联网 2.完整性保证(对每一次提交的数据进行hash操作) 3.尽可能添加数据而不是删除或者修改数据 4.分支操作非常快捷流畅 5.与Linux命令兼容 Git安装:https://git-scm.com/ Git结构:工作区(写代码),--git add-->暂存区(临时存储),-- git commit --->本地库(历史版本) Git 命令行操作 1.git init 本地库 初始化命令 2.设置签
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

一句话从 Oracle 取每组前三名

Oracle 实现这个用到了窗口函数,以及子查询,写出来也不容易,如下 SELECT * FROM ( SELECT g, ROW_NUMBER() OVER(PARTITION BY g ORDER BY x) group_id RN FROM A ) WHERE group_id <= 3 ORDER BY g ASC, group_id ASC 这种场景,用集算器 SPL 更容易处理,只要很短一行: =connect(”OracleDB”).query(“select * from A”
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

webpack4多页应用HTML按需添加入口依赖chunk【html-webpack-plugin & html-inline-entry-chunk-plugin】

在webpack4中使用splitChunkPlugin时,根据需要将公共代码拆分为多个依赖后,需要在创建htmlWebpackPlugin时候按需引入对应入口文件依赖的chunk。但是html-webpack-plugin的chunk配置项只能手动添加,在没有得知拆分后的chunk情况下,无法得知对应html的依赖chunk,也就无法按需做引入。 因此鄙人自己写了个配合html-webpack-plugin的插件,使用方便,效果还行,如果有帮到你,希望能在github上赐我一颗小星星。 gi
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

省选模拟99 题解

e
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

基于51单片机PWM调速L298芯片控制两选一直流电机正反运转的项目工程

#include"reg52.h"//单片机头文件 #define uchar unsigned char//宏定义,用uchar表示unsigned char,叫无符号字符型数据类型,取值范围为:0到255。 #define uint unsigned int//宏定义,用uint表示unsigned int,叫无符号整数型数据类型,取值范围为:0到65535。 sbit qitingjian=P1^0;//位定义启停键 sbit zhengzhuan=P1^1;//位定义正转键 sbit
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

C语言实验报告(六)

C程序设计实验报告 姓名:杨静 实验地点:家 实验时间:2020.05.19 实验项目 1.一维数组的应用 2.二维数组的应用 3.字符组的应用 一、实验目的与要求 1、掌握一维和多维数组的定义和数组元素的引用方法。 2、了解一维和多维数组初始化的方法。 3、学习一维和多维数组的基本算法。 4、掌握字符数组的定义、初始化方法及其元素的引用方法。 5、掌握C语言提供的对字符串进行处理的基本库函数。 二、实验内容 7.3.1一维数组的应用 实验练习1 1.问题的简单描述:写一个函数,对用随机数产生
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

2020 Java 面试题 小结 (答案慢慢补上,有错误请指出)

线程池的参数 创建线程的方式 如何暂停线程,有几种方式 线程之间的通讯 线程中什么是原子性、什么是可见性、什么是有序性? Volatile是如何实现可见性的? AQS中共享锁有哪些?独占锁有哪些 synchronized 关键字有几种用法? synchronized 的缺点有哪些? 静态方法和非静态方法锁的对象分别是什么? 对象锁和类锁有什么区别? 什么是哨兵机制? jvm中堆是否存储了所有对象 哪些没有存入里面 堆中的有哪些区域,1.8和之前有什么区别 元空间和永久代有什么区别 创建一个对象
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

最短路——dijkstra算法

dijkstra算法的运用条件是求某一点到其他点的最短路径问题 题目链接:https://www.luogu.com.cn/problem/P4779 实现思路: 类似多米诺骨牌问题,推下第一个,后面的骨牌会按时间顺序倒下,那么最先倒下的那条路便是最短路 每次找目前已知的最短路径(到所需的原点),这条路径不可能再被优化,因为如果从其他路绕的话,光是绕路就超过了这个路程(已知的最短路径) 两个数组来做记录,一个是dis数组,记录点到原点的距离(要根据需要更新的),一个vis数组,判断该点到原点的
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0

网络协议-网络基础-从物理层到链路层

从物理层到链路层 在计算机网络中,物理层负责将光电信号转化为 0、1 比特流用来表示信息,数据链路层把这些信息集合为一个叫做「帧」的块,再进行传输。 TCP/IP 未对数据链路层及以下部分(物理层)做定义,因为 TCP/IP 以这两层的功能是透明的为前提,但是,数据链路层的知识对于深入理解 TCP/IP 与网络起着至关重要的作用,所以这一篇我们重点来介绍数据链路层,物理层主要是物理介质,比如光缆、电缆、双绞线等,更多的是硬件结构,不在我们重点论述范围。 MAC地址 介绍数据链路层,离不开 MA
分类: 其他 发布时间: 05-19 22:00 阅读次数: 0