笔记摘要。。。

目录

1.什么是匿名函数

2.什么是三次握手

3.什么是四次挥手

4.python常见的异常类

5.什么是redis

6.redis持久化

7.redis如何实现乐观锁

8.python元类

9.type和isinstance的区别

10.魔法方法iter的含义

11.魔法方法new的含义

12.redis的过期策略


  1. 什么是匿名函数

匿名函数是一种没有明确名称的函数,也被称为lambda函数。它通常用于需要一个临时函数的场景,不需要定义函数的完整结构。匿名函数可以在需要时声明和使用,而无需事先定义函数名称。

匿名函数的语法通常为:lambda 参数列表表达式

2.什么是三次握手

三次握手和四次挥手是TCP协议中用于建立和关闭连接的过程。

三次握手(Three-way Handshake)是在TCP连接建立时使用的过程。它的目的是确保客户端和服务器之间的通信能够正常进行。具体步骤如下:

1. 客户端向服务器发送一个SYN(同步)报文,表示客户端请求建立连接。

2. 服务器接收到客户端的SYN报文后,向客户端发送一个SYN-ACK(同步-确认)报文,表示服务器接受连接请求,并准备好建立连接。

3. 客户端接收到服务器的SYN-ACK报文后,向服务器发送一个ACK(确认)报文,表示客户端也准备好建立连接。

3.什么是四次挥手

四次挥手(Four-way Handshake)是在TCP连接关闭时使用的过程。它的目的是确保客户端和服务器能够正确地关闭连接。具体步骤如下:

1. 客户端向服务器发送一个FIN(结束)报文,表示客户端不再发送数据。

2. 服务器接收到客户端的FIN报文后,向客户端发送一个ACK报文,表示服务器收到了客户端的关闭请求。

3. 服务器继续发送数据给客户端,直到服务器准备好关闭连接。

4. 服务器向客户端发送一个FIN报文,表示服务器准备关闭连接。

5. 客户端接收到服务器的FIN报文后,向服务器发送一个ACK报文,表示客户端收到了服务器的关闭请求。

6. 客户端继续等待一段时间,以确保服务器收到了ACK报文。

7. 客户端关闭连接,服务器也关闭连接。

4.python常见的异常类

1. `SyntaxError`:语法错误,通常是由于代码书写错误导致的。

2. `IndentationError`:缩进错误,通常是由于代码缩进问题导致的。

3. `NameError`:名称错误,通常是由于引用了不存在的变量或函数导致的。

4. `TypeError`:类型错误,通常是由于操作数类型不匹配或不支持某种操作导致的。

5. `ValueError`:值错误,通常是由于传递了无效的值或参数导致的。

6. `IndexError`:索引错误,通常是由于访问了不存在的索引或序列导致的。

7. `KeyError`:键错误,通常是由于访问了不存在的键或字典导致的。

8. `FileNotFoundError`:文件不存在错误,通常是由于打开或读取不存在的文件导致的。

9. `ZeroDivisionError`:零除错误,通常是由于除法运算中除数为零导致的。

10. `AttributeError`:属性错误,通常是由于访问不存在的属性或方法导致的。

5.什么是redis

Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,并提供了丰富的操作命令和功能。

Redis的主要特点包括:

1. 高性能:Redis将数据存储在内存中,因此具有快速的读写速度。它还支持持久化到磁盘,以便在重启后恢复数据。

2. 多种数据结构:Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。这使得它可以适用于各种不同的应用场景。

3. 分布式:Redis支持分布式架构,可以通过主从复制和集群模式来实现数据的高可用性和扩展性。

4. 支持事务和原子操作:Redis支持事务操作,可以一次性执行多个命令,并通过MULTI、EXEC、WATCH等命令来实现原子操作。

5. 发布/订阅模式:Redis支持发布/订阅模式,可以实现消息的发布和订阅功能,用于构建实时通信和消息队列系统。

6. 支持扩展功能:Redis还提供了一些扩展功能,如Lua脚本支持、键过期和自动删除、数据持久化等。

6.redis持久化

Redis提供了两种持久化方式来保证数据在重启后的恢复:

1. RDB持久化:RDB持久化是将Redis的数据以二进制形式保存到硬盘上的文件中。它可以通过配置文件设置定期或手动触发RDB持久化操作。定期触发可以通过设置save配置项来指定持久化的时间间隔和数据修改次数。

2. AOF持久化:持久化是将Redis的操作日志以追加的方式保存到硬盘上的文件中。每当Redis执行一个修改数据的命令时,都会将命令写入AOF文件中,以此来记录数据的修改操作。

7.redis如何实现乐观锁

Redis 的乐观锁是基于 WATCH 命令和事务(MULTI/EXEC)来实现的。WATCH 命令用于监视给定的键,如果在事务执行期间,被监视的键被其他客户端所改动,那么事务将被打断。通过检查事务执行结果中的 nil 值,可以判断是否发生了冲突,从而决定如何处理

8.python元类

在 Python 中,元类(metaclass)是用于创建类的类。它是一种高级特性,允许我们在定义类时自定义类的行为

元类的主要作用是控制类的创建过程,可以拦截类的定义、修改类的属性和方法,甚至可以替换类的实现。通过定义元类,我们可以对类进行自定义的元编程操作

在 Python 中,可以使用 type 内置函数来创建元类。type 函数接受三个参数:类名、基类元组(可选)、类属性字典。通过调用 type 函数并传递这些参数,就可以动态创建一个类

9.type和isinstance的区别

type:返回一个对象的类型,是类对象的实例,用于判断对象的具体类型

isinstance:判断对象是否是某个类的实例,返回的是一个布尔值

10.魔法方法iter的含义

定义一个对象的迭代器

使用 for 循环或其他迭代方式遍历对象时,实际上是在调用对象的  iter 方法来获取选代器,然后使用选代器依次获取值

11.魔法方法new的含义

创建对象之前分配内存空间并返回一个实例

new方法通常与init方法使用

常用于元类的创建过程或者对某些不可变类型(如tuple,str等)的自定义创建行为

12.redis的过期策略

定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。

惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。

定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值