![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库及Nosql缓存
文章平均质量分 89
数据库 Mysql 及 Redis、memcache 等缓存技术
林戈的IT生涯
我是林戈!IT技术领域深耕10年+;北京多家名厂闯荡5年+;清华大学硕士;坐标山东从事IT研发工作。之前一直在阿里云运营独立网站,2015年起自建博客并运营约10年,累计发文1300+篇,2024年3月域名被收购目前在逐步迁移博客文章至CSDN。
展开
-
mysql执行in查询时指定查询结果排序、报错DETERMINISTIC..binary logging is enabled 及 max_allowed_packet 数据包大小控制
在mysql的in查询时默认的输出排序往往和是in查询的条件没有关系的。显示的排序结果如下:而在有些时间我们是需要按照输入的ID顺序显示出来的,这时就需要对SQL进行一些改造了。MYSQL里有两个函数可实现我们要的效果:一是使用FIND_IN_SET()函数。两种方法效果差不多,性能方面我简单地进行少量的测试查询下field性能会好一些。我觉得应该是这样,field有点就是专门为某个字段服务的函数,包括排序,而FIND_IN_SET本身并不是为了排序,它是为了查找字段数据是否在某个集合里。原创 2024-07-05 07:00:00 · 899 阅读 · 1 评论 -
MYSQL从5.5升级到5.6后碰到查询变得很慢的问题 及 mysql里几个超时配置参数wait_timeout,net_read_timeout等
记个日志,这几天在进行机房的服务器切换,切换期间及切换后一天内尚正常,但第二天下午碰到MYQL负载非常高,一大堆的MYSQL在等待执行,业务里有很多非常长、条件非常多和复杂并涉及多重子表查询的SQL语句,最后发现其中一条SQL语句执行非常长,通过对其EXPLAN进行分析,发现其并未按照我们的预期使用一个normal索引,而是使用了其中的IN查询涉及到的字段。原创 2024-07-02 07:00:00 · 915 阅读 · 3 评论 -
PHP操作Mongodb进行图片存储、图片读取程序、根据经纬度求两点之间的距离 及 根据某点经纬度求半径之内的经纬度值范围
Mongodb非常易于使用,只是它的概念和我们的关系型数据库的概念听起来有些差异,比如MongoDB里的集合(可以理解成关系型数据库里的表),但是集合不像表要求每条记录都要有相同的结构,集合里的每个记录可以是不同的结构,但通常情况下,我们放在一个集合里的记录都有类似或相关的特征。MongoDB里的文档对应关系数据库里的一条记录,但MongoDB的文档是一组键值对构成的结构,和表里的记录看起来不一样,但仔细一看,实际上都是字段名值和值一对一的关系。原创 2024-06-18 07:30:00 · 703 阅读 · 0 评论 -
MYSQL不小心CTRL+C的处理 及 varchar字段类型最多可存储多少字节内容?65535?65533?65532
在LINUX上输入了堆字母后终于连接上了MYSQL,但在输入MYSQL命令的时候发现自己输入错了,这时一不小心使用了Linux命令里经常使用的CTRL+C快捷键,于是悲剧的表情立马展现在你的脸上了。当然实际你可以通过回删删除一堆的字母来达到目的,但肯定的是那是一个很无味的枯燥的活。其实是有方法来处理这样的情况的:记住命令:c (注意没有分号)使用c要注意两点:一是前面的命令行里不要有命令结束符号(默认是分号),二是c命令一定是要重启一行。原创 2024-06-16 07:30:00 · 1961 阅读 · 3 评论 -
mongodb的安装使用、mongodb与redis,memcache,mysql的区别优缺点 以及 好用的MongoDB的可视化客户端Robomongo,mongobooster
MongoDB是一个介于关系数据库和非关系数据库之间的基于分布式文件存储的数据库。是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。原创 2024-06-12 07:30:00 · 1005 阅读 · 1 评论 -
大数值会被自动科学计数法处理的解决办法、php中 json_decode解析 bigint 的问题、科学计数法的显示转换、MySQL BIGINT UNSIGNED out of range
如果只提供第一个参数,number的小数部分会被去掉 并且每个千位分隔符都是英文小写逗号"," 如果提供两个参数,number将保留小数点后的位数到你设定的值,其余同上,如果提供了四个参数,number 将保留decimals个长度的小数部分, 小数点被替换为dec_point,千位分隔符替换为thousands_sep。而这个处理有时是在我们不知情的情况下进行的,近日和在处理第三方回传的订单号时就碰到了这样的情况,原来回传的都是111开头的整数(放在json中),一些都是正常的。原创 2024-04-09 06:35:29 · 264 阅读 · 0 评论 -
Docker中启动jenkins容器的时区问题、Jenkins 邮件的发送配置、nginx+php出现404的情况 及 docker下搭建redis3.2环境-启动多端口实例
docker访问一个明明存在的文件,但是访问出现404,刚开始使用docker的时候可能不大习惯,因为使用docker之后,你的nginx和php中的所有路径都需要写容器里的路径,而不是容器外的服务器目录路径,而我们在配置的nginx的root以及php的目录的时候就很可能忽略了这个地方的改变,导致访问的时候我们认为肯定存在的文件实际并不在docker里容器访问的目录里。标准时间值是Etc/UTC,修改为Asia/Shanghai即可。原创 2024-04-08 05:59:01 · 256 阅读 · 0 评论 -
MYSQL的默认事务隔离级别REPEATABLE-READ也会出现数据更新丢失问题
1,事务隔离级别设置为最高:Serializable2, 非Serializable隔离级别中事务中使用排它锁for update.3,使用乐观锁,但注意,不能在REPEATABLE-READ隔离级别的事务中使用乐观锁。因为它是可重复读的。最后,REPEATABLE-READ级别还会出现幻读的问题,这里不再细说。Serializable可解决幻读问题。原创 2024-05-27 07:30:00 · 1705 阅读 · 5 评论 -
Mysql主从同步的配置记录、主从同步环境相关事项及show slave status及report-参数介绍等
show slave hosts虽然能列出当前的mysql从库,但是数据并不一定准确,如果在从库上执行了stop slave,但是在主库上通过show slave hosts查看可能依然会看到这台从库。需要等待一定时间后主库上的show slave hosts才会将stop的从库摘除,这可能是mysql主从内部的超时监控机制有关。原创 2024-05-23 07:30:00 · 509 阅读 · 6 评论 -
PHP连接mongoDB数据库的扩展Mongo和MongoClient 以及 mongodb的启动参数大全/auth配置
mongodb的启动很简单,命令如下:–port 27017 #指定服务端口号,默认端口27017,安全起见,也可考虑更换端口。–bind_ip 192.168.162.100 #绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP–logpath log/mongo.log #指定MongoDB日志文件,注意是指定文件不是目录–logappend #使用追加的方式写日志–fork #以守护进程的方式运行MongoDB,创建服务器进程。原创 2024-03-31 06:54:55 · 448 阅读 · 1 评论 -
Linux文件查找命令locate、slocate、mlocate;jemalloc required问题、fgrep与grep的对比及rm:Argument list too long问题解决
相比于find查找,LOCATE查找具有无可比拟的更快的速度,这是因为locate不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息(也可以理解为建立了一个文件名称索引)。Linux系统自动创建这个数据库,并且每天通过crontab自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。原创 2024-05-17 07:30:00 · 954 阅读 · 0 评论 -
Mybatis数据库操作CRUD的使用、Mybatis使用注解开发的示例 及 java常用日志管理工具Log4j
使用Mybatis确实会简化很多的开发工作,有了Mybatis,以后DAO层只需要做有意义的事情了(写SQL),如下是Mybatis数据库操作CRUD的使用示例。在完成中各项配置后,我们用一个测试类全部实现一次对数据库全部CRUD操作示例。如下实体类Area代码,之所以再放一遍,是因为刚才在使用new的时候出现报错,Error:(44, 31) java: 无法将类 cn.kermit.pojo.Area中的构造器 Area应用到给定类型;需要: 没有参数;原创 2024-05-13 07:30:00 · 723 阅读 · 1 评论 -
MYSQL中控制流程函数CASE,IF,IFNULL,NULLIF 及 5.6版查询日志开启使用general_log的变化
将case的值(或数据库里的字段)与条件进行匹配判断,如为真则将值置为THEN后面的值,命令表达式:示例如下:case后面的1可以是数据库里的字段,以下执行结果为:高一(字段名grade)另一种语法,使用关系表达式。原创 2024-05-10 06:30:00 · 733 阅读 · 1 评论 -
python安装MySQLdb / mysql-python模块遇到的错误问题及解决
python下安装mysql模块mysql-python时碰到 报错:ImportError: No module named MySQLdb。在新环境下部署python脚本时肯定会经常遇到缺少模块的报错,比如:这时我们就需要安装第三方模块,安装第三方模块有多种办法,比如可以直接下载第三方库包,解压后找到setup.py文件,然后运行python setup.py install即可完成安装,这个方法需要手动下载第三方模块包文件,有些麻烦,另一个非常好用的方法就是使用pip。原创 2024-05-09 07:45:00 · 1996 阅读 · 2 评论 -
python后台任务实现-asyncio协程、fastApi框架BackgroundTasks 及 pymysql的connections.py、datetime is not JSON报错
在某些时间我们前端向服务端发送请求后,服务端后面的处理前端并不关心,这时服务端可以提前向前端反馈结果,自己的后端处理逻辑可以放后台处理。以下实现示例的环境是在fastapi框架中,分别使用asyncio和fastApi框架的BackgroundTasks实现。asyncio-异步 I/O 是python用来编写并发代码的库,被用作多个提供高性能Python异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等,asyncio是构建IO密集型和高层级结构化 网络代码的最佳选择。原创 2024-03-21 06:32:07 · 378 阅读 · 0 评论 -
linux服务器redis-cli命令、docker下安装bcmath扩展、redis中hash数据备份和导入的shell脚本、怪问题:redis的hgetall方法直接出异常挂掉
在非redis服务器上需要用一下redis-cli命令,但又没有安装redis,只需要下载redis执行一下make, 会在src目录下生成redis-cli可执行文件且通过测试,此文件可以复制到其它服务器直接使用,非常方便。原创 2024-03-21 06:46:12 · 187 阅读 · 1 评论 -
Java开发数据库持久层框架Mybatis的使用 及 Mybatis动态SQL开发示例
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。原创 2024-03-19 06:05:38 · 132 阅读 · 0 评论 -
Go开发连接MYSQL、Go取得随机字符串的三种方法代码 以及使用Go实现冒泡排序和快速递归
最近闲余时间接触了一点GO,真不知道它好用在哪,在Go语言中没有类(Class)的概念,然而编程又离不开面向对象,于是GO说我没有类的概念,但我也能实现面向对象编程。在Go中使用结构体(Structs)对属性进行封装,结构体就像是类的一种简化形式。然后再在Go中定义一些方法并且作用在接收者(receiver)上的一个函数,简单描述就是GO中没有类的概念,但你可以定义一个Struct结构,当作类。这个结构中的属性当做类的属性,然后单独定义一些方法挂载到这个结构上,模拟出了一个类。但感觉还是挺别扭的。原创 2024-04-30 07:45:00 · 1192 阅读 · 16 评论 -
关于MYSQL的XA事务(分布式事务)的了解以及MySQL5.7.7对XA的优化
MySQL XA 事务简单说就是基于多数据库的事务,通常用于分布式事务处理当中。比如在分库分表的场景下,当遇到一个用户事务跨了多个分区,需要使用XA事务 来完成整个事务的正确的提交和回滚,即保证全局事务的一致性。目前我还没有用过XA事务,我感觉能与XA相关联的可能就是业务与业务间的调用吧,这些工作很多时候都是通过接口来实现两边的数据处理,而接口实现的话需要做到的就是支持数据重入不发生错误,但接口重入肯定没法保证数据一致性,另外也并非每个库都有必要提供接口化服务,这也许就是XA(分布式事务)存在的原因吧。原创 2024-04-27 07:45:00 · 2214 阅读 · 8 评论 -
关于Redis集群解决方案Twemproxy 以及 Debian下 twemproxy的安装记录
redis集群是个常用的需求和应用,在我做的业务中,也同时使用了二十多台REDIS服务器,一些是主从架构,另一些是集群(数据很多,读取)。为什么会分主从架构和集群架构?原创 2024-04-25 07:45:00 · 1341 阅读 · 16 评论 -
Opencart 使用伪静态时会造成大量数据库查询问题 及 SQL查询库大小和 INFORMATION_SCHEMA 相关
Opencart是一套还不错的商场系统,特别是其模块化的设计思路。这是我在刚接触Opencart后的初步印象,另外在深入了解Opencart的源代码之后,我觉得Opencart还是一个很不错的入门框架。现在的大型框架比如YII,LARAVEL以及ZEND等,都是把程序源代码写得让一般人看不了,进入的入口页写得很简单,一般两句就几句,定义个报错模式,然后就加载个应用,再执行一下应用init之类或是boot函数驱动整个Application,让人望而生畏。原创 2024-04-02 06:36:27 · 380 阅读 · 0 评论 -
Linux下redis服务及php-redis扩展的安装 以及 Php5.4使用Traits-php间接实现多继承的方法
redis官网地址:http://www.redis.io/最新版本:2.8.3在Linux下安装Redis非常简单,具体步骤如下(官网有说明):1、下载源码,解压缩后编译源码。2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。3、启动Redis服务。注意修改配置文件(改为后台运行)4、然后用客户端测试一下是否启动成功。原创 2024-04-07 12:36:06 · 367 阅读 · 0 评论 -
Php开发关于scandir、mkdir、以及PDO10054错误问题的详细内容
开发过程中如果遇到了某某函数因为安全原因被禁用,如:scandir() has been disabled for security reasons,则是因为PHP的ini配置中的 disable_functions 里面有这个函数,解决方法你当然可以去修改php.ini的设置,也可以把这个敏感函数替换成其它的函数或自构方法。因为之前我提前目录时一直使用opendir和readdir方法,在翻看百度的底层系统代码时看到了一个函数scandir,发现挺好,可以省下不少事。原创 2024-04-06 06:28:09 · 182 阅读 · 1 评论 -
Ununbu上Redis的安装以及php+redis应用中常见错误的解决方法
以前一直喜欢使用Centos服务器,这次不得不用Ubuntu,不过觉得Ubuntu用起来也挺舒服的,特别是在安装一些软件的时候安装完毕连启动都省了,安装完即开始使用,感觉很方便。原创 2024-04-21 07:45:00 · 1657 阅读 · 13 评论 -
Ubuntu18.04 用 docker 安装mysql8的全过程记录 并用Docker 搭建Phpmyadmin 管理 Mysql数据库
先说明一下哈,我这里是安装的 Mysql8.0版。先下载8.0的镜像,直接 mysql:8.0 即可,如果下载较慢的话,去 /etc/docker/daemon.json 里配置一下 国内镜像地址。文件 mysqld.cnf 内容如下:[mysqld][client][mysql]原创 2024-03-29 08:10:47 · 356 阅读 · 0 评论 -
Debian linux的包安装管理命令dpkg详解 以及使用deb-bundle.tar包安装mysql5.7完整记录
另外在debian安装mysql开始的时候可能会有报错:conflicts with mariadb-client-10.1,mariadb-client-10.1 (version 10.1.41-0+deb9u1) is present and installed.因为debian系统自带的mariadb会和mysql冲突,所以开始请先卸载mariadb。1、dpkg -i package.deb 安装一个 Debian deb软件包,也可以是已经下载的文件,注意这里格式是deb文件。原创 2024-04-15 20:28:11 · 917 阅读 · 2 评论 -
使用 Redis时尽量使用hashget/hashset,少用get/set? 以及PHP Warning:PHP Startup:redis:Unable to initialize module
网上多有评论说hashget/hashset的效率比get/set高,并建议在使用redis时尽量使用hash,少使用get/set的键值。未必啊。原创 2024-04-14 10:38:27 · 1096 阅读 · 7 评论 -
MYSQL里的存储过程实现及PDO中的prepare 以及 MySQL事务处理的隔离级别
说存储过程之前,我们先想一下MYSQL里的PDO,在PDO里有一个PREPARE方法,它可以实现将传入参数作为一个变量写入SQL中,然后执行prepare生成一个类似SQL模板,而后php可以一直改变参数循环调用prepare。因为prepare已经生成了sql模板这种东西,所以后面再执行这条语句时就减少了sql的预处理解析次数,如果说MYSQL的存储过程和这个PREPARE看起来很你的话,也就轻易理解了。不同的是,存储过程中是存储在MYSQL里的自定义方法;原创 2024-04-13 20:45:06 · 791 阅读 · 3 评论 -
php+mysql使用乐观锁和悲观锁解决并发减库存问题;以及laravel 电商网站怎么防止库存脏数据-减库存加锁
什么是悲观锁?看意思就是比较,不相信其它的人不会改,所以查询的时候就加锁,然后自己更新数据再释放锁。可以有效防止减库存冲突问题。在php+mysql程序中怎么实现呢?代码也很简单。悲观锁的业务流程(以商品表和SKU表减库存并进行其它操作为类):可见下面的流程中整个被锁的周期是比较长的。---事务开始1,查询商品表、锁定表:for update2,判断商品库存是否大于购买数据,3,如果库存满足,减少商品表库存。(不满足就回滚事务了。4,减少商品SKU表库存5,记录订单操作记录等。原创 2024-04-12 20:12:59 · 632 阅读 · 10 评论 -
Redis主从配置时的高可用方案redis-sentinel 以及使用 3.2.8版本redis主从复制的完整流程
redis的主从复制主要是通过master server持久化的rdb文件实现。master server先dump出内存快照文件,然后将rdb文件传给slave server,slave server根据rdb文件重建内存表。redis复制过程如下:1、slave server启动先加载本地的rdb文件,开始对外提供服务。2、连接到master server之后,先判断是否能进行Partial resynchronization部分复制(这里只讨论全量复制)原创 2024-04-12 15:15:00 · 437 阅读 · 7 评论 -
运行两redis实例试验redis服务器主从模式 及主库master关闭了持久化仍有可能进行bgsave操作的问题
之前曾经在项目开发中大量使用REDIS作数据缓存,不过因为并发量还不够大,未在主从模式下开发过业务,不过之前看到相关的文档。主从配置其实很简单,和MYSQL主从同步的原理差不多,Redis主坐同步的内在原理就是以下5个步骤:(1)Slave服务器连接到Master服务器.(2)Slave服务器发送SYCN命令.(3)Master服务器备份数据库到.rdb文件.(4)Master服务器把.rdb文件传输给Slave服务器.(5)Slave服务器把.rdb文件数据导入到数据库中.原创 2024-04-12 12:45:00 · 359 阅读 · 1 评论 -
mysql提示Please read “Security“ section of the manual to find out how to run mysqld as root!
使用/usr/local/mysql/bin/mysqld start启动mysql 时,mysql提示:这是让我们查看mysql的安全部分,去查找如何使用root来启动mysql,下面是Security Section的内容:翻译后的内容:永远不要使用root帐号启动MySQL Server。原创 2024-04-10 06:35:56 · 1519 阅读 · 0 评论 -
关于nginx中控制文件上传大小配置项 以及 磁盘满导致APP接口上传文件返回500
在文件上传时,如果上传文件比较大会出现报错:Status Code: 413 Request Entity Too Large,此时的响应头信息详细示例如下:这正是超过了nginx配置的上传文件大小限制导致的。配置项即是client_max_body_size size,其默认大小为1M,详细文档说明:可以选择在http{ }/server{ }/location{ }中设置此项, 控制的范围不同。另外修改此项配置必须杀掉nginx重新启动,否则不能生效。原创 2024-04-09 20:25:09 · 335 阅读 · 2 评论 -
MYSQL建立了FULLTEXT全文索引查询结果为空 及Can‘t connect to local MySQL server through socket /tmp/mysql.sock 问题
mysql全文索引非常有用,我做过测试,在1千万数据的mysql表上使用全文索引查找响应是极其快的,而要like需要几秒的时间,sql的运行截图如下:(说明:我的表结构很简单,只有一个自增ID和邮箱字段)。上面的like查询是左边字符固定的查询,如果改成两边都匹配,like查询会更慢。如下图:再加上网站的高并发,可以相像like查询此时根本不可取了,全文索引的大功能就能派上用场。不过有时加上了全文索引,却怎么也搜索不出结果是什么原因呢?原创 2024-04-09 06:29:36 · 234 阅读 · 1 评论 -
Centos7.6下离线安装Mysql8.0的全过程 以及 使用 mysqldump 进行 Mysql 数据库备份的完整 shell 脚本
本想使用docker安装,奈何公司服务器不允许上外网,于是离线下载mysql8的安装包这样安装一下吧。当然一定要用docker安装也可以从一台服务器上docker pull下来镜像然后保存导出再放到目标服务器上,在这期间我在找能不能直接wget下载下来镜像以导入docker中,目前没有发现有这样的方法。原创 2024-04-09 06:25:07 · 1090 阅读 · 0 评论 -
关于Mysql存储引擎InnoDB和MyISAM、主从同步日志设置以及Python Mysql的报错:BrokenPipeError
做技术必须跟上技术的发展轨道,否则你就是坐井观天而已!这样一想,我们也就明白了为什么大学里学的东西总是感觉用不上,因为大学里的教科书十几年不变,而科技方面的进步却是今天不同于昨天。在我读大学的时候,就知道MYSQL分InnoDB和MyISAM存储引擎,那时这个话题是每个社区的必争话题,而在招聘公司那里也成了招聘技术官的热门问题,那时基本形成了标准答案了:那时关于MyISAM和InnoDB的应用场景:MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。原创 2024-04-06 06:15:55 · 189 阅读 · 3 评论 -
Linux下 mysql5.6 编译安装设置等完整过程记录及问题笔记
此时下载的mysql文件存放在downloads里/opt/downloads, mysql主要安装在/opt/modules/mysql中,mysql的数据存储在/opt/data/mysql/中。切换到mysql数据库,添加root账户密码,可以发现下方修改了4条记录,涉及root从各处登录的密码,admin的密码创建还可以使用mysqladmin命令来处理。cmake命令换行格式的命令如下:注此行和上面的代码是一样的,是为了更直观和好看。通过set names=utf8也可以随时切换编码,原创 2024-04-05 06:16:00 · 1002 阅读 · 0 评论 -
关于redis的慢日志slowlog、Redis操作ZREMRANGEBYSCORE 空有序集的问题 及 Redis配置项意义大全
今天因为redis出了一个问题,使用了慢日志排查问题,记个笔记,慢日志不仅在mysql上有,redis上也一样存在,这很容易理解,都是数据库,作用都是提供业务调用,当然需要对业务的调用进行耗时统计,在redis.conf里有如下配置荐:上方的slowlog-log-slower-than就是慢日志的阈值设定,即查询用时达到或者超过了这个值就会记录慢日志,下方的设置值表示最多记录128条慢日志记录,因为慢日志和其它的redis数据一样,会记录在内存中。原创 2024-04-04 06:53:05 · 195 阅读 · 0 评论 -
Mysql里SUBSTRING_INDEX、CONCAT的运用 和 MySQL中UNION使用 ALL | DISTINCT-去除重复数据以及其它高级查询功能
mysql里有一些很好用的方法,比如SUBSTRING_INDEX和CONCAT。MySQL中UNION使用 ALL | DISTINCT-去除重复数据。MYSQL查询时的其它一些高级功能FORCE INDEX原创 2024-04-03 06:26:44 · 288 阅读 · 0 评论 -
关于CDN缓存的实现技术及大型网站架构里的服务器种类
CDN即是Content Delivery Network(内容分发网络),名字听起来很高大上,但我如果说它就是一个缓存系统,那就很容易理解了。而实际它就是这么回事。例如你请求一个URL,而这个URL使用了CDN,此时你再请求URL时,后端执行服务器根本收不到你的请求,而是直接在CDN服务器上,根据你的URL匹配是否有缓存(未过期),如果有缓存则直接返回结果。所以我们经常听到CDN加速这个词,试想WEB请求如果使用了CDN即使用了缓存,当然能实现加速。原创 2024-04-01 06:48:45 · 219 阅读 · 0 评论