1. ---------redis的数据类型及应用场景
Redis支持5种数据类型:
string(字符串)
常规key-value缓存应用
hash(哈希)
适合用于存储对象
list(列表)
关注列表,粉丝列表等都可以用Redis的list结构来实现
set(集合)
Redis set对外提供的功能与list类似是一个列表的功能,特殊之处在于set是可以自动排重的
zset(有序集合)
2. ---------redis的优缺点
纯内存操作,读写速度快
Redis的数据库容量受到物理内存的限制
3. ---------redis的内存淘汰策略有哪些
volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
allkeys-random:从数据集中选择任意数据淘汰
4. ---------redis如何做内存优化
尽可能使用散列表(散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。
5. ---------mysql常用 的数据库引擎
MyISAM存储引擎
InnoDB存储引擎
Mermory存储引擎
6. ---------myISAM和Innodb的区别是什么
MyISAM引擎索引结构的叶子节点的数据域,存放的并不是实际的数据记录,而是数据记录的地址
InnoDB引擎索引结构的叶子节点的数据域,存放的就是实际的数据记录
7. ---------hash索引和btree的区别
不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引
8. ---------索引的作用和类型
索引用于快速在某一列中找到特定的值
单列索引 组合索引 全文索引 空间索引
9. ---------索引失效的原因,或者说什么情况下用不到索引
条件中有or
对于多列索引,不使用的第一部分,则不会使用索引
like查询以%开头,索引无效
当字段类型为字符串时,条件中数据没有使用引号引用
10. ---------什么情况下不建议用索引
唯一性差的字段不适合创建索引
表经常需要更新的不适合做索引
查询结果量大的时候不使用索引
数据表过大则有些字段不适合作为索引
11. ----------说一下mysql中的事务
事务的基本要素(ACID)
原子性 一致性 隔离性 持久性
事务的并发问题
脏读 幻读 不可重复读
12. ----------事务的隔离级别有哪些
读未提交 不可重复读 可重复读 串行化
13. ----------说一下mysql中的锁
按锁的粒度划分:表级锁,行级锁,页级锁
按锁的级别划分:共享锁、排他锁
按加锁方式分:自动锁、显式锁
按操作划分:DML锁、DDL锁
按使用方式划分:悲观锁、乐观锁
14. ----------死锁是如何造成的,怎么避免
死锁:是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去
查询是否锁表
查询进程
杀死进程id
15. ----------什么是sql注入
SQL 注入是一种非常常见的数据库攻击手段,SQL 注入漏洞也是网络世界中最普遍的漏洞 之一
------什么是装饰器,原理应用场景及项目中哪些地用到
在不改变原代码的情况下给函数添加新的功能
可以在外层函数加上时间计算函数,计算函数运行时间
计算函数运行次数
可以用在框架的路由传参上
缓存,实现缓存处理
权限的校验,在函数外层套上权限校验的代码,实现权限校验
------python常用的三方模块有哪些
requests 它是一个Python第三方库,处理URL资源特别方便
Pygame Python游戏设计模块
Chardet 字符编码探测器,可以自动检测文本 网页的编码
------Python内置模块有哪些
random os json datetime
-----面向对象的五大原则是什么
单一职责原则 一个类,最好只做一件事,只有一个引起它的变化
开放封闭原则 软件实体应该是可扩展的,而不可修改的
里氏代换原则 所有使用基类的地方必须能够透明的使用其子类的对象
依赖倒置原则 依赖于抽象
接口隔离原则 使用多个小的专门的接口,而不要使用一个大的总接口
-----tcp和udp的区别
TCP面向连接 UDP是无连接的
TCP提供可靠的服务
Tcp通过校验和重传控制,序号标识,滑动窗口、确认应答实现可靠传输
UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信
每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
TCP对系统资源要求较多,UDP对系统资源要求较少
------列举python中的魔法方法
__init__ 初始化方法
__str__ 打印
__new__ 类的构造器
-------什么是元类
实例化得到的类叫做元类
------什么是反射
反射指的是运行时获取类型定义信息也叫做自省
需要执行对象里的某个方法,或调用对象中的某个变量,但是由于种种原因我们无法确定这个方法或变量是否存在,这是我们需要用一个特殊的方法或机制要访问和操作这个未知的方法或变量,这中机制就称之为反射
------说一下python中的迭代器和生成器
在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法
生成器通过生成器函数产生,生成器函数可以通过def语句来定义,但是不用return返回,而是用yield一次返回一个结果,在每个结果之间挂起和继续它们的状态,来自动实现迭代协议。
------什么是元组,和列表的区别是什么
元组是一个与列表类似的集合,不过由于元组是不可改变的,所以不能对元组完成排序,也不能追加和删除元素。



