暂时未有相关云产品技术能力~
暂无个人介绍
eval() 函数把字符串按照 PHP 代码来执行。(功能很强大啊。得禁止。) php的eval函数并不是系统组件函数,因此在php.ini中使用disable_functions是无法禁止它的。eval并非函数,而是php底层提供的一种特性。
新服务器配置的是nginx服务器。最近陆续的将之前apache服务器上的项目迁移到nginx上。
今天分享一个js分享站点的代码。
产生这种原因是因为服务器限制了上传大小,有nginx服务器的解决办法、apache服务器修改。
Vue-cli3.0安装:cli.vuejs.org/zh/guide/in… 。使用命令行运行 :vue ui 。
服务器上已经配置了git,但是git对C#的管理不是很友好。我就想到了svn。这里记录一下centos7安装svn的过程。
安装nginx、php、mariadb。如果安装完成之后没有mysql表 ,那就去/var/lib/ 把mysql文件夹删掉。至此,lnmp环境配置完成。
Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用。
实现linux定时任务有:cron、anacron、at等,我这里主要使用cron服务。 crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
栈的链式存储结构,简称为链栈。栈的链式存储结构与线性表的链式存储结构差不多,但是其相对比较简单,只在表尾进行操作。
栈是限定仅在表尾进行插入和删除操作的线性表。 我们将允许插入和删除的一端称为栈顶,另一端称为栈底。不含任何元素的栈称为空栈。栈又被称为先进后出的线性表。 也就是说栈是一个特殊的线性表,其只在线性表的表尾进行添加删除数据操作,也就是说上边提到的栈底是固定的,添加删除操作只在栈顶进行。
线性表链式存储结构定义:链表是用一组任意的存储单元来存储线性表中的数据元素(这组存储单元可以是连续的,也可以是不连续的)。
线性表:零个或多个数据元素的有限数列。数据元素 1 对 1的关系,这种关系是位置关系。 线性表元素个数n(n>=0)定义为线性表的长度,当n=0时,称为空表。
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
一直在apache服务器下开发yii2.0的项目,apache下的部署可能没有什么。服务器环境是nginx
数据:是描述客观事物的符号。是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
Yii2.0框架的日志操作如下,大概有五种方式: Yii::getLogger()->log($message, $level, $category = 'application') Yii::trace($message, $category = 'application'); Yii::error($message, $category = 'application'); Yii::warning($message, $category = 'application'); Yii::info($message, $category = 'application');
服务器存储session就是基于浏览器的cookie实现的,后端存储session,生成sessionid传递给前端,存储在cookie中,因此如果浏览器禁用cookie,那么session可能就不好用了。 cookie在开发中也是可以存储一些我们常用的值,当然,html5增加了两个新的属性吧,sessionstorge以及localstorge,其二者原理和session相同,只是声明周期和存储机制不太相同。
首先,我们先将html页面的公共头尾抽成公共的文件。 Yii2.0框架是有公共布局选项这个设置的:advanced/backend/views/layouts/main.php这个文件就是公共模板文件,在我这里就是公共头尾。
Yii2.0大概封装了两大众方法来执行数据库操作: 1:query()和queryXXX()方法,query()方法返回的是对象一般用的较少,当然,这个是对我来说,具体看你自己的需求。 2:execute方法
Php常用的加密函数有MD5加密(不可逆)、Crypt加密(不可逆)、Sha1加密(不可逆)、Urlencode加密(可逆) base64编码加密(可逆)。
Yii2.0分为两个版本,basic(基础版)和advanced(高级版)。
关于PHP操作redis的一些命令之类的,我将其封装成了一个类,其中包含redis五种数据类型的操作,基本功能大概都是有了。下边是类的代码。
Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证: (1)批量操作在发送 EXEC 命令前被放入队列缓存。 (2)收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。 (3)在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
Redis 键命令用于管理 redis 的键。
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个频道的订阅者就能接收到这条消息。Redis的这种发布订阅机制与基于主题的发布订阅类似,Channel相当于主题。
redis之所以能解决高并发的原因是它可以直接访问内存,而以往我们用的是数据库(硬盘),提高了访问效率,解决了数据库服务器压力。
列表的功能十分独特,他可以在一个键下面存储N个可以重复的元素。其实就是把string类型右边的值换成了多个元素组成的列表。
hash散列类似于一个小型的Redis数据库,一个散列可以包含多个键值对,散列的每个键都不能重复,各不相同,无序排列,其值可以是字符串或数字值,对于数字值,可以执行自增或者自减操作。 hash 特别适合用于存储对象。
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。
set集合和list列表十分的相似,都可以存储多个字符串。但是list列表可以存储重复值,而set集合中不可重复。
Redis是一个非关系型远程内存数据库,由于操作都在内存中,所以Redis的速度非常快,性能十分强劲。 它可以存储键和5种不同类型的值之间的映射。可以帮助用户解决各式各样的问题,直接将数据自然的映射到这5种数据结构。 通过复制、持久化和客户端分片功能,可以将Redis拓展成为一个包含数百GB的数据库,除非非常高的并发量。
服务器安装的是php7.2,就需要使用第一个命令php72w那个,具体使用什么命令,还需要按你自己的服务器PHP版本来看。安装后可用 which phpize 和 which php-config 查看安装的路径。
Centos的yum源中没有redis;这里我们需要安装一个第三方的yum源,这里用了Fedora的epel仓库。
Yarn是类似npm的另一种javascript包管理工具。 它的目的是解决使用 npm 时面临的少数问题,即: 1. 安装的时候无法保证速度/一致性 2. 安全问题,因为 npm 安装时允许运行代码
全文检索通过sphinx搜索出来的内容是没有问题的。这里使用了PHP内置的similar_text函数对文章的描述以及标题进行相似度的计算,然后根据计算之后的相似度数值进行倒叙排序。
主索引的更新频率可以设置的长一些(例如设置在每天的凌晨进行),而增量索引的更新频率,我们可以将时间设置的很短(几分钟左右),这样在用户搜索的时候,我们可以同时查询这两个索引的数据。 使用“主索引+增量索引”方法有个简单的实现,在数据库中增加一个计数表,记录每次重新构建主索引时,被索引表的最后一个数据id,这样在增量索引时只需要索引这个id以后的数据即可,每次重新构建主索引时都更新这个表。
source:数据源,数据是从什么地方来的。 index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。有了整本字典内容以后,才会有字典检索。 searchd:提供搜索查询服务。它一般是以deamon的形式运行在后台的。 indexer:构建索引的服务。当要重新构建索引的时候,就是调用indexer这个命令。
Sphinx匹配模式 语法: $sp -> SetMatchMode(常量) SPH_MATCH_ALL 匹配所有词(默认) SPH_MATCH_ANY 匹配一个词 SPH_MATCH_PHRASE 匹配整一个词 SPH_MATCH_BOOLEAN 将查询看作一个布尔表达式 SPH_MATCH_EXTENDED 查询看做一个sphinx的表达式
选择在更新数据的时候更新索引,这样做是为了保证数据检索的实时性,但是如果您的数据需要比较频繁的更新且数据量比较大,并且对数据检索没有实时性的要求,那么可以使用linux的定时任务,在使用人数较少的时候来更新索引,
Sphinx3.3.1版本是不需要编译安装的,下载下来,解压,直接就能用。 这个和我目前正在使用的sphinx-for-chinese 是有不同的。
Coreseek目前官方网站已经不能访问了,大概率估计后期就不会有人维护了。对于长期发展来看,可能是不要好。 所以我的博客中使用了sphinx-for-chinese。是基于sphinx2.3.1开发的。 下载地址:gitee.com/mz/sphinx
sphinx是不支持中文分词的,所以,百度上给的大多数的结果是基于sphinx内核开发的coreseek+mmseg分词的一套组合来实现中文分词+全文检索。
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用 程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL 也设计了一个存储引擎插件。
索引合并是mysql底层为我们提供的智能算法。了解索引合并的算法,有助于我们更好的创建索引。 索引合并是通过多个range类型的扫描并且合并它们的结果集来检索行的。仅合并来自单个表的索引扫描,而不是跨多个表的索引扫描。合并会产生底层扫描的三种形式:unions(合并)、intersections(交集)、unions-of-intersections(先取交集再合并)。
全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引(PRIMARY):它是一种特殊的唯一索引,不允许有空值。 主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。
联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
我们常用的索引数据结构比较多的是B+TREE。 还有另一种索引数据结构是hash,但是innoDB、mysiam数据引擎不支持hash数据结构。
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15
发表了文章
2024-05-15