搜索内容

推荐文章
  • 持续集成指南:GitLab 的 CI/CD 工具配置与使用

    前言 写代码这项工作,本质就是将工作自动化,减少手工操作提供效率,因为人的本质都是懒狗,程序员也不能例外,为了各种意义的效率提升(懒),我们需要持续集成工具,将代码测试、编译、发布这些重复性很高的工作,全部变成自动化,减轻工作量,提高效率,解放生产力,为华夏伟大复兴贡献力量 说回正题,持续集成工具主流的就 Jenkins 、Gitlab CI/CD 这些,因为我们刚好在用 Gitlab,所以就不去折腾 Jenkins 了,直接用这个好了~ 关于 Gitlab 的安装,可以参考我之前写的文章:G……
    2022-10-01
  • 「产品运营」研发效能之DevOps平台如何运营?

    有人常说「酒香不怕巷子深」。不是的,如果这个巷子是酒吧街,那最深的那家酒吧肯定是租金最便宜的。酒吧的地段好坏已经在租金价格上体现出来了。现在已经不是那个工具缺乏、有个工具就拍手称快、欣然去试用的时代了。何况现在每个人各司其职,工作节奏都很快,平时都关注在自己的工作任务上,很难注意到其它。所以我们不但要有能力把产品做出来,还要让更多的小伙伴知道它、把它用起来,用得爽,这就是我们产品运营需要做的事情。 团队组织 产品与运营啥关系呢?产品是把产品做出……
    2022-10-01
  • Python爬虫详解

    本文讲述了Python爬虫的具体过程,与爬虫的过程 1、任务介绍 需求分析 爬取豆瓣电影Top250的基本信息,包括电影的名称,豆瓣评分,评价数,电影概况,电影链接等。 https://movie.douban.com/top250 2、基本流程 2.1、准备工作 通过浏览器查看分析目标网页,学习编程基础规范 与Java的一些区别,Python没有主函数,需要自己去定义并判断 def main():#所有程序从这里开始执行 print("hello") if __name__=="__main__": #当 当前程序执行时 #调用函数 ……
    2022-10-01
  • Redis高并发分布式锁详解

    介绍了分布式锁的特性,模拟想要实现redis分布式锁的演变流程,分析redisson源码是如何实现分布式锁的,面对高并发下,我们该如何提升分布式锁性能 为什么需要分布式锁   1.为了解决Java共享内存模型带来的线程安全问题,我们可以通过加锁来保证资源访问的单一,如JVM内置锁synchronized,类级别的锁ReentrantLock。   2.但是随着业务的发展,单机服务毕竟存在着限制,故会往多台组合形成集群架构,面对集群架构,我们同样存在则资源共享问题,而每台服务器有着……
    2022-10-01
  • Raft 共识算法

    转载请注明出处:https://www.cnblogs.com/morningli/p/16745294.html raft是一种管理复制日志的算法,raft可以分解成三个相对独立的子问题: 选主(Leader election):原有的leader故障后需要选举一个新的leader。 复制(Log replication): leader必须接受client发送的记录(log entries)然后复制到集群中其他节点,并强制要求其他节点的日志和自己保持一致。 安全(Safety):raft安全的关键是状态机安全:如果存在server将一个特定的记录应用到状态机中,不存在另外一个serv……
    2022-10-01
  • 聊聊SQL注入

    明天是国庆1001,祝大家国庆节快乐!!!这个月还有属于程序员的节日:1024 SQL注入问题 概述: 首先SQL注入是一个非常危险的操作,很可能被一些不怀好意的人钻空导致我们系统出现异常等状况,比如数据库遭到破坏或被入侵。 直接原因: 在页面中有数据交互的地方,攻击者构造sql语句,使web服务器执行恶意命令访问数据库。 根本原因:服务端没有严格检验用户数据导致SQL注入漏洞,像使用JDBC的Statement语句添加SQL语句,如下: 由于我们的JD……
    2022-10-01
  • Netty 学习(五):服务端启动核心流程源码说明

    Netty 学习(五):服务端启动核心流程源码说明 作者: Grey 原文地址: 博客园:Netty 学习(五):服务端启动核心流程源码说明 CSDN:Netty 学习(五):服务端启动核心流程源码说明 说明 本文使用的 Netty 版本是 4.1.82.Final, io.netty netty-all 4.1.82.Final 服务端在启动的时候,主要流程有如下几个 创建服务端的 Channel 初始化服务端的 Channel 注册 Selector 端口绑定 我们可以写一个简单的服务端代……
    2022-10-01
  • 驱动开发:通过ReadFile与内核层通信

    驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方法,微软为我们提供了三种通信方式,如下先来介绍通过ReadFile系列函数实现的通信模式。 驱动与应用程序的通信是非常有必要的,内核中执行代码后需要将其动态显示给应用层,但驱动程序与应用层毕竟不在一个地址空间内,为了实现内核与应用层数据交互则必须有通信的方法,微软为我们提供了三……
    2022-10-01
  • 如何通过执行SQL为低代码项目提速?

    见多了SQL为代码开发提速,那么当低代码遇到SQL会擦出怎样的火花呢?本文将低代码和SQL结合进行介绍,让大家了解如何通过执行SQL为低代码项目提速。 背景 自从计算机诞生的一刻起,如何让计算机能够按照人类的需求进行工作,满足人类的需要就成为了一个问题,于是便诞生了计算机语言。最初的计算机语言是由0和1构成的机器语言,用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,运行快,但是不容易使用,上手困难且难易理解。为了克服机器语言的缺点,人们将机器指……
    2022-10-01
  • 什么是前缀索引?

    合适的索引设置,既能满足一定的查询效率要求,也能节省存储空间! 一、什么是前缀索引? 所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效率更快! 有点类似于 Oracle 中对字段使用 Left 函数来建立函数索引,只不过 MySQL 的这个前缀索引在查询时是内部自动完成匹配的,并不需要使用 Left 函数。 二、为什么要用前缀索引? 可能有的同学会发出疑问,……
    2022-10-01