• 面试之前的准备


    数据库

    数据库表命名规范:
    表名一般的格式模块名称_详细信息,禁止使用数据库关键字命名
    日志表一般以Sys开头,数据字典表一般以SD_开头,系统字典表一般以DT_开头。
    常见的表名单词

    user 用户
    category 分类
    goods 商品、物品
    good_gallery 物品相册
    good_cate 物品分类
    attr 属性
    article 文章
    cart 购物差
    feedback 用户反馈
    order 订单
    site_nav 页头和页尾导航
    site_config 系统配置表
    admin 后台用户
    role 后台用户角色
    access 后台操作权限
    role_admin 后台用户对应的角色
    access_role 后台角色对应的权限
    

    非关系型数据库

    redis
    为什么使用缓存,使用缓存的好处是什么,缓存如何就不用打到关系型数据库了。
    缓解关系型数据库的并发压力:如很多的热点数据,或者经常访问的关键字
    减少响应时间,内存IO速度比磁盘速度快。
    提高系统的抗压能力,单机的Redis就支持很大的并发量。
    Redis常见的数据类型有哪些:
    string(字符串):用来实现简单的kv键值对存储(计数器)
    List(链表):实现双向链表,比如用户的关注,粉丝列表
    Hash(哈希表):用来存储彼此相关信息的键值对
    Set(集合):存储不重复元素,比如用户的关注者
    Sorted Set(有序集合):实时信息榜。
    Redis事务和Mysql事务有什么不一样:(要查,我Mysql都不知如何实现事务)
    1.将多个请求打包,一次性、按序执行多个命令的机制
    2.Redis通过MULTI,EXEC,WATCH等命令实现事务功能
    Redis如何实现分布式锁(要查具体案例)
    1.使用setnx实现加锁,可以同时通过expire添加超时
    2.锁的value值可以使用一个随机的 uuid或者特定的命名
    3.释放锁的时候,通过uuid判断是否是该锁,是则执行delete释放锁
    Redis常见的缓存模式Redis为啥会有常用的缓存模式
    Cache ASide:同时更新缓存和数据库
    2.Read/Write Through:先更新缓存,缓存负责同步更新数据库
    3.Write Behind Caching:先更新缓存,缓存定期异步更新数据库
    如何处理数据库和缓存之间的数据一致性问题?为甚恶魔会出现这个问题
    可能导致问题:先更新数据库后更新缓存,并发写操作可能导致缓存读取的是脏数据。
    解决方法:一般先更新数据库然后删除缓存
    三大Redis常考点:
    缓存穿透,缓存击穿,缓存雪崩。
    1.大量的请求在缓存中查不到到,落到后端数据库查找没返回值,(如何解决)
    2.热点数据key过期,大量请求就达到了数据库。(分布式锁(为啥能解决),异步后台更新(后台写个脚本根据过期的key自动刷新))
    3.缓存雪崩:部分缓存服务器挂了,提高系统的监控和报警机制。
    MongoDB
    文档型非关系型数据库,以键值来存储数据
    集合就是MongoDB中的文档组,类似于MySQL中的数据表。
    文档是key value组成。类似于关系型数据库的每一条记录

    非关系型数据库的增删改查

    关系型数据库

    MySQL

    什么是事务及事务的特性:事务是一个操作序列,这些操作要么都做,要么都不做,是一个不可分隔的单位;原子性(要么改变,要么不变),一致性(转账:a减少,b就增加),隔离性(多个用户之间的操作互不影响),持久性(改变之后的影响是持久的)。
    4大事务隔离级别,未提交读(脏读):,提交读(导致不可重复读),可重复读(导致幻读),可序列化串行化
    死锁:多个进程因争夺资源而造成的一种僵局,多个进程都无法获取资源
    如何避免死锁 (1) 允许某些资源同时被多个进程访问。 2)预分配 3)允许进程强行抢占被其它进程占有的资源 4)死锁检查(资源管理器堆栈跟踪,查看线程哪出现了死锁)
    为什么产生死锁:
    如何预防死锁:破坏产生死锁的条件,如:允许进程剥夺其他进程进程占用的资源。
    产生死锁的条件:互斥条件(一个资源只能被一个进程使用)。请求与保持条件(当进程因请求资源而阻塞时,对已获得的资源不会释放)。不可剥夺条件(以获得的资源,在未使用完,不可强行剥夺)。循环等待(若干进程形成循环等待的条件)

    关系型数据库的增删改查

    索引相关

    MySQL的索引原理

    网络协议

    常见的两种网络模型

    OSI7层模型:
    应用层(http,DNS协议),表示层,会话层,传输层(TCP协议),网络层(IP协议,路由器),数据链路层,物理层。
    TCP/IP模型
    应用层(http,dns,ftp),传输层(TCP/UDP),网络层(IP),网络接口层
    两者的差异:
    网络层举例:OSI7层模型时无连接+面向连接,而tcp/ip是无连接。无连接:直接传输数据。面向连接:建立,传输,释放。

    Python知识点

    python命名规则,不能以数字开头,一般时英文开头,命名最好由英文、下划线、数字组成。
    python字典的key不支持为list或dict类型,因为list和dict类型是unhashable(不可哈希)的。

    框架知识点

    Django与Flask在数据库模型的区别

    Flask和Django的网络请求比较

    Flask与Django的表单类(待续)

    算法知识点

    常见的排序算法

    常见的查找算法

    数据结构知识点

    数组

    链表

    二叉树

    队列

  • 相关阅读:
    性能相差7千倍的ToString方法
    重构打造爱因斯坦谜题最快算法
    Windows Phone 7将胜出的五条论据
    让火狐狸遨游起来
    What's your understanding about RIA?
    [English Practise]Action when meeting a problem at work
    linux socket编程
    nginx服务器的配置
    要搬到csdn了
    搭建一个全栈式的HTML5移动应用框架
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/16213288.html
Copyright © 2020-2023  润新知