LRU算法简介

对于web开发而言,缓存必不可少,也是提高性能最常用的方式。无论是浏览器缓存,还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。

常见的缓存算法

LRU (Least recently used) 最近最少使用,如果数据最近被访问过,那么将来被访问的几率也更高。

LFU (Least frequently used) 最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。

FIFO (Fist in first out) 先进先出, 如果一个数据最先进入缓存中,则应该最早淘汰掉。

阅读全文 »

问题error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. 的解决

运行c语言代码是会经常遇见下面的问题:

error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 11.0\vc\include\stdio.h(290) : 参见“scanf”的声明
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets(347,5): error MSB6006: “CL.exe”已退出,代码为 2。

这种微软的警告,主要因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数你不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉你相应的安全函数,查看警告信息就可以获知,在使用时也再查看一下MSDN详细了解。

阅读全文 »

安装MySQL8.0出现错误

安装MySQL8.0出现的The service already exists!The current server installed:

这是我在安装MySQL的时候出现的一个服务冲突问题:

1
2
3
C:\Windows\system32>mysqld  install  mysql8
The service already exists!
The current server installed: D:\DB\mysql-8.0.17-winx64\bin\mysqld mysql8

这是因为在现在之前的MySQL的时候没有卸载干净(服务未关闭)

阅读全文 »

1 Go 安装

最新版本下载地址官方下载 golang.org,当前是 1.13.6。如无法访问,可以在 studygolang.com/dl 下载

使用 Linux,可以用如下方式快速安装。

1
2
3
4
5
6
$ wget https://studygolang.com/dl/golang/go1.13.6.linux-amd64.tar.gz
$ tar -zxvf go1.13.6.linux-amd64.tar.gz
$ sudo mv go /usr/local/

$ go version
go version go1.13.6 linux/amd64

Go 1.11 版本开始,Go 提供了 Go Modules 的机制,推荐设置以下环境变量,第三方包的下载将通过国内镜像,避免出现官方网址被屏蔽的问题。

阅读全文 »

本机已经有了一个MySQL5.7,再安装一个最新的MySQL8.0。

下载

下载地址:MySQL下载地址
下载如下版本。

解压

将下载好的压缩包解压到C:\DB
路径自定义,但是路径中尽量不要带空格或中文。

阅读全文 »

爬虫前奏

明确目的:爬取虎牙直播LOL板块主播人气排行

找到数据对应的网页

分析网页的结构找到数据所在的标签位置

模拟HTTP请求,向服务器发送这个请求,获取到服务器返回给我们的HTML

用正则表达式提取我们要的数据(名字,人气)

阅读全文 »