Redis 秒杀

抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。 重点在于第二个问题 常规写法: 查询出对应商品的库存,看是否大于0,然后执行生成订单等操作,但是在判断库存是否大于0处,如果在高并发下就会有问题,导致库存量出现负数 [php] view plain copy <?php $conn=mysql_connec
分类: 其他 发布时间: 01-08 23:53 阅读次数: 0

Mysql 实现读写分离-Atlas中间件

Mysq主从同步原理: Mysql 之间数据复制的基础是二进制日志文件(bin log file) Slave 数据库作为slave通过一个 I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现,master二进制文件发生变化,则会把变化复制到自己的日志中,然后SQL线程会把相关的数据库操作事件执行到自己的数据库中,依次实现从数据库和主数据库的一致性,也就是实现了主从复制。 首先实现Mysql主从同步: 安装配置: 192.168.50.110 Mysql mast
分类: 其他 发布时间: 01-08 23:53 阅读次数: 0

PHP正则入门教程

介绍 正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教! 定位 我们什么时候使用正则表达式呢?不是所有的字符操作都用正则就好了,php在某些方面用正则反而影响效率。当我们遇到复杂文本数据的解析时候,用正则是比较好的选择。 优点 正则表达式在处理复杂字符操作的时候,可以提高工作效率,也在一定程度节省你的代码量。 缺点 我们在使用正则表达式的时候,复
分类: 其他 发布时间: 01-08 23:53 阅读次数: 0

使用Hexo搭建属于自己的GIT博客

使用Hexo搭建属于自己的GIT博客 相关步骤: 一些Hexo操作命令 前言:电脑系统为window 10专业版,64位 相关步骤: 1、安装Node.js和配置好Node.js环境,打开cmd命令行,成功界面如下 2、安装Git和配置好Git环境,安装成功的象征就是在电脑上任何位置鼠标右键能够出现如下两个选择 注意:一般出于安全考虑,只有在Git Bash Here中才能进行Git的相关操作。如果需要在cmd命令行里调用Git,那么就要配置电脑的环境变量Path,或者在安装的时候选择use
分类: 其他 发布时间: 01-08 23:52 阅读次数: 0

看完你就会正则表达式了

最近看了一篇关于正则表达式的学习笔记,觉得讲的非常好,更有图形化的神器相助,想不学会都难,所以想转给大家看看。 话说不是开发为啥要学正则表达式这种看似很晦涩的东西呢,因为现在很多搜索的场景都是支持正则表达式的,学会了正则表达式就有如一把利剑在手。 本文较长,建议抽40分钟完整的时间一次读完再慢慢消化。以下是正文(为了适应难度,做了稍许调整) 1.什么是正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简
分类: 其他 发布时间: 01-08 23:52 阅读次数: 0

大众点评cat监控系统

点评的cat做业务监控确实不错,听说cat 2 快要出来了。。。。。 搭建、文档 cat github地址:https://github.com/dianping/cat 相关文档:搭建文档 怎么搭建就不细说了,这里记录下大家cat-home 需要注意的地方 data/appdatas/cat 目录是存放cat-home 配置文件的相对地址,如果是window就是相对于项目部属所在的磁盘 data/applogs/cat 目录是存放cat-home 的log日志 cat有个很重要的概念,就是d
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

[CF868F] Yet Another Minimization Problem

Description 给定一个序列,要把它分成k个子序列。每个子序列的费用是其中相同元素的对数。求所有子序列的费用之和的最小值。 Solution 仍然是决策单调性的题目。 \(f[i][j]\)表示把前\(i\)个数分成\(j\)份的最小费用。 \[ f[i][j]=min(f[k][j-1]+w(k+1,i)) \] 显然这个决策点是会单调递减的,但是我们不能直接维护一个栈来完成了,因为\(w(k+1,i)\)是不能直接的算的。我们采用分治的做法,先找到\(f[mid][j]\)的决策点
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

CENTOS重新安装JDK

centos 删除默认安装的JDK 重新安装JDK 1、删除JDK 通过xshell工具成功连接安装好的虚拟机之后可通过 rpm -qa | grep java 或 rpm -qa | grep jdk命令来查询出系统自带的jdk(不包括noarch结尾的文件) 然后通过 rpm -e --nodeps 后面跟系统自带的jdk名 这个命令来删除系统自带的jdk, 例如:rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 r
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

fd

人生第一次pwn 一、前言: 最近在疯狂找pwn入门基础。群上的师兄说,最好的入门就是找几道ctf的题目复现别人的wp,所以开始接触pwnable.kr(这是我在i春秋幻泉师傅的CTF入门视频中找到的一个pwn平台), 希望通过这个平台的题目,可以让我对pwn,有所了解。(路过的大佬请忽视小菜) ssh连接进去即可 PS:flag文件无权限读取。 二、分析源码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

Python学习笔记——元组(tuple)

元组(tuple) 元组和列表类似,特点:()定界符、不可变、有序、支持下标、逗号分隔、元素可以重复、元素查找速度非常慢。 创建元组: 如果只创建一个元素的元组,一定要在后面加一个逗号: 元组没有列表中那么多方法可以使用,因为不可变,所以安全,速度比列表快。 元组可以用做字典的‘键’,也可以作为集合的元素,这两者在列表身上都不能使用,因为列表可变 查找元组: 可以通过下标来做: 也可以通过遍历来做: 删除元组: 不能对元组的元素进行删除,但是可以删除整个元组: 作业: 编写程序,输出由1、2、
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

Git详解——Feature Branching:最流行的工作流

在前面的 Git入门——团队工作的基本工作模型 中 ,介绍了一种最基本的团队工作模型。在这种模型里,所有人都工作在 master 上,写完了的 commit 可以通过 push 来发送到中央仓库,并且可以使用 pull 来获取到 别人的最新 commit s。 这种工作模型解决了团队合作最基本的问题:多人并行开发和版本管理。事实上,这也是早期的 VCS ——中央式 VCS 的工作模型。 但这种工作模型也有它的限制:使用这种工作模型时,每个人的代码在被大家看到的时候,就是它进入正式的生产库的时候
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

初探机器学习之使用百度AI服务实现图片识别与相似图片

一、百度云AI服务   最近在调研一些云服务平台的AI(人工智能)服务,了解了一下阿里云、腾讯云和百度云。其中,百度云提供了图像识别及图像搜索,而且还细分地提供了相似图片这项服务,比较符合我的需求,且百度云提供了每日10000次入库和500次检索的免费次数,使得我可以更快地试用,且没有任何花费。更为重要的是,百度云提供了兼容.NET Core 2.0的C# SDK,这是更加让我选择试用的原因。      这里抛开BAT各个AI服务提供的算法的精准度不说,百度的AI服务的友好度还是蛮高的。废话不
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

【课程】Python函数

知识点1、 #函数(function)的定义——一段代码的名字——不会执行里面的代码 def func():   print('') #调用函数 func() 知识点2、 def function1():   print('1')   print('2')   def function2():     print('2-内部函数') def function3():   print(‘3-外部函数’) print('start') function2() print('over') 知识点3、
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

httpclient在获取response的entity时报异常

httpClient报异常:Premature end of chunk coded message body: closing chunk expected 首先这个异常提示直译过来就是:被编码信息体数据块的过早结尾,数据块关闭异常 昨天第一眼看到这个异常时,我是丈二和尚摸不着头脑,一通搜索也没搞清楚。当时时间较晚就先睡觉了,然后今天再测试时还是这个异常,这个时候我就仔细看了下这个异常提示,关键词是“Premature(过早)”和“end(结束)”,那么按照这个提示思路我就发现我出错的原因是
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

[UOJ 87] #87. mx的仙人掌

#87. mx的仙人掌 UOJ 87 题目大意 给出一个 \(n\) 个点,\(m\) 条边的带边权的仙人掌,定义两点之间距离为最短路长度,\(Q\) 次询问,每次给出 \(cnt\) 个点,问它们之间最远点对的距离。 数据范围 边权不超过 \(2^{31} - 1\) \(n, \sum cnt \le 300000\) 时空限制 5s, 512MB 分析 此题如果不是仙人掌,那就是每次建出虚树来 DP 仙人掌求最短路也就是建出圆方树后根据 \(lca\) 分类讨论,那么,我们就根据圆方树建
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

javascript顺序数组简单实现个二分查找

直接上码了注释写得很详细: function bsearch(A,x){ //l:查找范围左 r:查找范围右 let l = 0, //查询范围左边界 r = A.length-1, //查找范围右边界 guess //中间猜测位置 while(l <= r){ //guess等于l,r中间位置 guess = Math.floor( (l+r)/
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

THE DEFINITIVE GUIDE TO DEBUGGING JAVASCRIPT

FIGURING OUT WHERE THE ERROR COULD BE READ THE CODE USING THE CONSOLE THE CHROME DEV TOOLS THE DEBUGGER BREAKPOINTS SCOPE WATCH VARIABLES AND EXPRESSIONS RESUME THE EXECUTION EDIT SCRIPTS INSPECT THE CALL STACK BLACKBOX SCRIPTS Often times you work
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

charles_https_通过模拟器安装APP然后抓包

声明,方法参考链接:https://bbs.pediy.com/thread-226435.htm 使用文中的模拟器并不好使,自个使用逍遥模拟器的4.4版本成功抓包, 1》下载逍遥模拟器,在逍遥安卓多开模拟器中安装4.4版本 2》安装xposed,安装后在点击框架,然后更新,更新之后会卡顿,强杀重开即可 3》安装justTrustMe,安装之后再xposed中的模块中要勾选。
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

小说脑洞:《善鬼》

简介:一个十六岁的女孩,在一座寺庙因心脏病猝死,在佛堂里变成一只善鬼,然后劝人行善的故事。 风格:极度浪漫主义。 篇幅:中篇。 背景:可以是古代,也可以是现代,以人鬼佛三道为背景。 开篇:女孩心思单纯,只不过心脏不好,在爬上一处山峰的寺庙后,因心脏病突发,在佛堂里死去。她死后在佛堂里变成一只鬼,一只不怕神佛的善鬼。这里可以为善鬼的出现,弄一个比较苛刻的条件,凸显女孩的特别——善。 中篇: 一、以小故事为剧情节奏,内容为反七宗罪。也就是女孩为鬼后,劝人温和、谦卑、勤劳、宽容、节制、贞洁、慷慨的七
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0

Django请求生命周期之响应内容

Django请求生命周期: 1.发送http请求 2.服务器接受,根据请求头中的url在路由关系表中进行匹配(从上到下) 3.匹配成功后,执行指定的views函数   URL -> 函数 ==>FBV   URL -> 类 ==>CBV 4.业务处理   - 根据个人需求自定   - 操作数据库   - 原生SQL   - Django ORM ==> 返回给用户的结果 <== - 响应内容 - 响应头 - 响应体
分类: 其他 发布时间: 01-08 23:51 阅读次数: 0