1.实现缓存的三种方式
基于内存缓存
基于普通文件缓存
基于redis缓存数据库的缓存
2.为什么缓存?
高性能、高并发。
3.同步异步的区别
同步:顺序执行,如果上一步没执行完则一直等待(阻塞)
异步:无序执行,不需要等待上一步就可以执行下一步
4.实现对数据分页查询的两种方式
可以使用sql中的limit来实现
可以使用切片来实现,但是查询比较慢,不推荐
5.eval是什么?有什么缺点?怎么改进?
eval() 函数用来执行一个字符串表达式,并返回表达式的值
eval虽然方便,但是要注意安全性,可以将字符串转成表达式并执行,就可以利用执行系统命令,删除文件等操作。
6.正则表达式的常用方法有哪些
test() exec() match() replace()
test()
验证字符串是否和正则相匹配
用法:regexp.test(string)
结果:若匹配返回true,若不匹配返回false
exec()
将字符串中匹配的内容捕获出来,只会捕获一次
用法:regexp.exec(string)
返回值:是一个数组,若无分组则数组里的内容包含三项,分别是匹配的内容、匹配内容的起始索引、原字符串
exec()处理分组
返回值:
第一项是匹配的内容
第二项开始是分组(括号里匹配)的内容,有几个分组就有几项
倒数第二项是匹配内容的起始索引
倒数第一项是原字符串
注意:若不需要捕获分布的内容,则在不需要捕获分组的里面加上原字符 ?:(匹配不捕获)
match()
将字符串中匹配的内容捕获出来
若加上量词g则一次性捕获所有匹配的内容放到数组里返回,若不加则与exec()的返回值一样
用法:string.match(regexp)
replace()
将字符串中匹配的内容捕获出来
用法:string.replace(值类型 | regexp, 值类型 | 回调函数)
该方法不改变原有字符串
7.正则表达式的常用符号有哪些
8.vthread是干什么用的
python 多线程函数库 vthread ,简而强大
更加方便的多线程库,以最小的代码侵入,做到最高效的多线程、线程池 coding 效率。在不改变源代码的情况下,一行代码即可实现线程池操作。