- 博客(8)
- 收藏
- 关注
原创 Redis
我觉得可以通过分布式锁来实现,首先A删除缓存再更新数据库的时候,先建立一个分布式锁,更新数据库成功后释放锁,如果B线程没有读取到缓存,则需要去获取分布式锁,获取到锁之后才能进行读取操作,保证在没有缓存的时候,只能有一个线程操作数据库,从而解决并发操作redis的问题,这种方式的缺点是在锁操作时性能有点影响。1. **基于内存**:Redis的数据存储在内存中,因此具有极高的读写速度,非常适合需要快速访问的应用场景。- **支持事务处理**: - **强大的数据支持**:支持复杂的数据查询和操作。
2024-08-14 13:43:59 1793
原创 Mysql接口开发-aiomysql
`select`、`execute`、`query_dataframe`和`trxn_execute`函数使用`ClientManager`获取`Client`实例并执行相应的数据库操作。它使用重试机制来处理续租过程中的异常情况。- `execute`、`select`、`query_dataframe`和`trxn_execute`方法执行不同的SQL操作。- `new_client`方法获取一个新的或缓存的`Client`实例。- 使用`TTLCache`管理`Client`实例的缓存。
2024-08-14 13:32:40 1741
转载 HTTP知识
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
2024-07-12 17:44:31 65
原创 机器学习知识
因为下采样会丢失信息,为了减少信息的损失,第一种方法可以利用模型融合的方法(bagging):多次下采样(放回采样,这样产生的训练集才相互独立)产生多个不同的训练集,进而训练多个不同的分类器,通过组合多个分类器的结果得到最终的结果。XGBoost采用的是level-wise的分裂策略,而lightGBM采用了leaf-wise的策略,区别是XGBoost对每一层所有节点做无差别分裂,可能有些节点的增益非常小,对结果影响不大,但是XGBoost也进行了分裂,带来了务必要的开销。这会导致梯度更稳定。
2024-07-12 14:41:53 628
原创 python知识
也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。我觉得可以通过分布式锁来实现,首先A删除缓存再更新数据库的时候,先建立一个分布式锁,更新数据库成功后释放锁,如果B线程没有读取到缓存,则需要去获取分布式锁,获取到锁之后才能进行读取操作,保证在没有缓存的时候,只能有一个线程操作数据库,从而解决并发操作redis的问题,这种方式的缺点是在锁操作时性能有点影响。(3)dict是无序的,即创建的dict和打印出的dict顺序不一样,而且不同的机器打印出的dict顺序都可能不一样。
2024-07-12 14:40:56 614
原创 操作系统知识
什么是操作系统?请简要概述一下操作系统是管理计算机硬件和软件资源的计算机程序,提供一个计算机用户与计算机硬件系统之间的接口。向上对用户程序提供接口,向下接管硬件资源。操作系统本质上也是一个软件,作为最接近硬件的系统软件,负责处理器管理、存储器管理、设备管理、文件管理和提供用户接口。操作系统有哪些分类?操作系统常规可分为批处理操作系统、分时操作系统、实时操作系统。若一个操作系统兼顾批操作和分时的功能,则称该系统为通用操作系统。常见的通用操作系统有:Windows、Linux、Mac
2024-07-12 14:40:23 1464 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人