- 博客(41)
- 收藏
- 关注
原创 LeetCode2404. 出现最频繁的偶数元素(python/C++解题思路和方法)
当解决这个问题时,我们需要使用C++语法来查找数组中出现最频繁的偶数元素。然后,我们可以遍历这个映射来找到出现频率最高的偶数元素。如果有多个偶数元素的出现频率相同,则返回最小的那个。如果数组中没有偶数元素或所有偶数元素都只出现了一次,则返回-1。当解决这个问题时,我们需要使用Python语法来查找数组中出现最频繁的偶数元素。然后,我们可以遍历这个字典来找到出现频率最高的偶数元素。如果有多个偶数元素的出现频率相同,则返回最小的那个。如果数组中没有偶数元素或所有偶数元素都只出现了一次,则返回-1。
2023-04-13 15:54:05
287
原创 docker 网络模式
docker 网络模式主要分为四种,可以通过查看为每一个容器分配设置ip,讲所有容器连接到docker0虚拟网桥,默认该形式容器将不会模拟出自己的网卡,配置自己的IP等,而是使用宿主机等IP和端口容器有独立的Network namespace,单并没有对其进行任何网络设置新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP/端口范围等。
2023-03-02 21:58:59
739
原创 Docker—— 存储/挂载/数据卷/Volume
数据卷是被设计用来持久化数据的,它的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷,并且也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷。如果需要在删除容器的同时移除数据卷。在使用docker run的时候,可以用- v标记来创建一个数据卷,并挂在到容器里,在一次run中可以多次使用挂载多个数据卷。数据卷容器涉及容器间共享的持久化、序列化的数据,数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其他容器挂载的。使用 -v 标记也可以指定挂载一个本地主机的目录到容器中去。
2023-02-27 21:39:07
459
原创 Redis学习笔记——(16) Redis高可用架构—Redis集群
Redis集群是一个提供再多个Redis节点之间共享数据的程序集,它并不像Redis主从复制模式那样只提供一个master节点提供写服务,而是会提供多个master节点提供写服务,每个master节点中存储的数据都不一样,这些数据通过数据分片的方式被自动分割到不同的master节点上。
2022-12-10 19:36:54
628
原创 Redis学习笔记——(15)哨兵:Redis Sentinel
Redis的主从复制模式下,一旦主节点发生故障,那么需要人工把从节点切换为主节点,同时还要通知服务端主节点的地址,这种操作很多人难以接受,Redis再2.8开始提供了RedisSentinel架构来解决这个问题。Redis需要概念都有名词解释,首先看一下相关名词解释。(1)Redis的主从复制模式可以将主节点的数据改变同步给从节点,这样从节点就可以起到两个作用:作为主节点的一个备份,一旦主节点出了故障不可达的情况,从节点可以作为后备“顶”上来,并且保证数据尽量不丢失(主从复制是最终一致性)。从节点可以扩展主
2022-12-05 21:18:02
249
原创 Redis学习笔记 —— (14) 内存
Redis所有的数据都存在内存中,当前内存虽然越来越便宜,但跟廉价的硬盘相比成本还是比较昂贵,因此如何高效利用Redis内存变得非常重要。
2022-12-04 17:03:43
234
原创 Redis学记笔记 —— (13)阻塞
Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现阻塞,哪怕是很短时间,对于我们的应用来说都是噩梦。
2022-12-03 22:54:43
719
原创 Redis学记笔记 —— (13)复制
在分布式系统中,为了解决单点问题,通常会把数据复制多个副本部署到其他机器上,满足故障恢复和负载均衡等需求。Redis当中也提供了复制功能,可以实现相同数据的Redis副本。
2022-12-03 22:23:37
217
原创 Redis学记笔记 —— (12)持久化(AOF)
当Redis做RDB和AOF重写时,一个必不可少的操作就是执行fork操作创建子进程,对于大多数操作系统来说fork是一个重量级错误,虽然它不需要拷贝父进程的物理内存空间,但是会复制父进程的空间内存页表。AOF(append only file) 持久化:以独立日志的方式每次写命令,重启时再重新执行AOF文件中的命令,达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性。auto-aof-rewirite-percentage表示当前AOF文件空间和上次重写后AOF文件空间的比值。
2022-12-01 20:58:27
183
原创 Redis学习笔记—— (11)持久化(RDB)
RDB文件保存在dir配置指定的目录下,文件名通过dbfilename配置指定,可以通过执行config set dir {newDir} 和config set dbfilename {newFileName} 运行期动态执行,当下次运行时RDB文件会保存到新目录。显然bgsave命令是针对save阻塞问题做的优化,因此Redis内部所有的设计RDB的操作都采用gbsave的方式,而save命令已经废弃。RDB持久化是把当前进程数据生成快照保存到硬盘的过程,出发EDB持久化的过程分为手动触发和自动触发。
2022-11-30 21:33:54
200
原创 Redis学习笔记 ——(7)慢查询分析
一个新的命令满足慢查询条件时被插入到这个列表中,当慢查询日志列表已处于最大长度时,最早插入的一个命令将从列表中移除,加入slowlog-max-len设置为5,第六个插入的时候,第一条数据就会出列。从字面意思可以看出,slowlog-log-slower-than就是预设阀值,它的单位是微秒,默认是10000,假设执行一条很慢的命令,如果它的炒作超过了10000微秒,它就会被记录在慢查询日志中。如果slowlog-log-slower-than等于0会记下所有的命令,如果小于0则不会记录所有的记录。
2022-11-28 20:35:51
202
原创 Redis学习笔记 ——(5)集合的用法、内部编码、使用场景
集合类型比较经典的使用场景是标签,例如一个用户可能娱乐、体育比较感兴趣,另一个用户可能对历史、新闻比较感兴趣,这些兴趣就是标签,有了这些数据就可以得到喜欢同一个标签的人以及用户的共同喜好的标签,这些数据对于用户体验一级增强用户黏度比较重要。集合类型可以用来保存多个字符串元素,但是和列表类型不一样的是,集合中不允许有重复元素,并且集合的元素是无序的,不能通过索引下标获取元素。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合类型的内部编码有两种。
2022-11-27 16:35:05
81
原创 Redis学习笔记 ——(3)哈希结构的用法、内部编码、使用场景
当哈希类型的元素个数小于hash-max-ziplist-entries配置(默认512个),同时所有值都小于hash-maxziplist-value配置(默认为64字节),Redis会使用ziplist做为哈希的内部实现。{filedn,valuen}}.当哈希类型无法满足ziplist要求时,redis会采用hashtable做为哈希的内部实现,因为此时ziplist的读写效率会下降。几乎所有的编程语言都提供了哈希(hash)类型,他们的叫法可能是哈希、字典、关联数组等。hashtable(哈希表)
2022-11-27 10:23:42
215
原创 Redis ——(2) 全局命令、数据结构和内部编码、字符串及其应用场景
第一可以改进内部编码,而对外的数据结构和命令没有影响,这样一旦开发出更优秀的内部编码,无需改动外部数据结构狗和命令,例如Redis3.2提供了quicklist,结合了ziplist和linkedlist两者的优势,为列表类型提供了一种更为优秀的内部编码实现,而对外部用户基本感知不到。通常来说,单线程处理能力要比多线程查,例如有10000斤的货物,每辆车的运载能力是200斤,就要运50次,但是如果有50辆车,一次就可以完成,而redis可的单线程模型可以达到每秒万级别的处理能力的有以下三点。
2022-11-26 11:23:28
324
原创 MySQL(5)——表记录的检索(3)
MySQL中的两个微辞distinct和limit可以过滤记录。数据库中最为常用的操作是从表中检索出所需要的数据。select语句是使用最频繁的语句。
2022-09-04 22:41:49
229
原创 MySQL(4)——数据表的基本操作(2)
在数据库中,数据表是数据库中最重要/最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的,每一行代表一条唯一的记录,每一列代表记录的一个域。...
2022-08-10 11:41:23
88
原创 MySQL(3)——数据表的基本操作(1)创建数据表及约束条件
在数据库中,数据表是数据库中最重要/最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的,每一行代表一条唯一的记录,每一列代表记录的一个域。......
2022-08-10 00:05:10
755
原创 MySQL(2)——存储引擎
存储引擎其实就是如何存储数据,如何为存储的数据建立索引和如何更新/如何查询数据等技术等的方法,因为关系数据库中数据上以表的形势存储的,所有存储引擎也可以称为表类型。
2022-08-08 21:49:39
170
原创 MYSQL——事务
事务是一组操作的集合,他是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败。小明的账户余额 -20购物平台余额 +20购买成功:小明账户余额-20;购物平台余额+20购买失败:小明和购物平台的余额都不产生变化如果没有事务的支持,可能会出现:当小明付款之后,系统出现了故障,购物平台的账户上没有余额的增加,而小明的账户余额却减少了。...
2022-08-04 14:50:53
56
原创 MySQL(1)——数据库基本操作
在MYSQL中我们可以创建多个数据库,每个数据库可以对应一个单独的项目,同时也可以多个项目共用一个数据库,本节先来学习一下数据库对应的操作。上面的例子中,begin和commit对应的是事务中的流程,后续章节中会讲到,这里不需要进行掌握,可以理解为开始和执行开关即可。在做项目的时候,有时对于别人已经创好的数据库,我们想要了解它的创建方式,可以通过。我们的数据库会随着项目的增多而越来越多,当需要操作某一个数据库的时候,可以通过。对于已经创建好的数据库,如果它的字符集不符合项目对应的要求,也可以通过。.....
2022-08-04 14:49:05
112
原创 docker-the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winp
问题在windows下使用docker,出现下面问题,需要再docker前加winptythe input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'解决方案 winpty docker run -it ubuntu bash
2022-01-05 14:06:13
628
原创 docker error pulling image configuration dial tcp xxxx:443: i/o timeout
docker error pulling image configuration dial tcp xxxx:443: i/o timeoutwindows下使用docker时候会遇到面这种情况Using default tag: latestlatest: Pulling from library/nginxa2abf6c4d29d: Pulling fs layera9edb18cadd1: Downloading [==============================>
2022-01-05 09:46:11
3956
1
原创 SSH连接远程服务器会自动断开,让其保持心跳
SSH连接远程服务器会自动断开,让其保持心跳在做项目的时候要连接远程服务器,ssh连接总是要过夜的,到了第二天总是发现会自动断开,还要重新进行连接,于是昭一中方法让它保持一致连接。断开的原因是因为路由会定期踢掉那些不活跃的连接,因此找到一种方式让其一直处于跳动状态。在.ssh文件下找到config,如果没有就创建一个,然后输入TCPKeepAlive yesServerAliveInterval 60保存即可...
2021-09-24 13:41:53
780
原创 Python查看某文件夹内有多少子文件 ,文件夹的文件数量
Python查看某文件夹内有多少子文件 ,文件夹的文件数量import osallFiles = os.listdir('/root/test')>>> len(allFiles)245
2021-09-22 14:57:55
560
原创 Leetcode 409 最长回文串(Python题解)
Leetcode 409 最长回文串(Python题解)给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输
2021-06-01 16:14:05
184
原创 LeetCode 热题 HOT 100 —— 1. 两数之和(python解法)
1.Leetcode01——两数之和(python解法)给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例2:输
2021-06-01 15:31:22
494
原创 Python---树、二叉树 练习题
Python——树、二叉树相关练习题总结一下自己的做题笔记1.一棵树是否为另一颗树的子树问题描述:有两个大小不同的二叉树,T1和T2,设计一种算法来判定T2是否为T1的子树。问题示例:例子中的T2是T1的子树,返回True,如果不是就返回Flase,图中的T2就是T1的子树。代码:#定义树的结构,左右置空class TreeNode: def __init__(self,val): self.val = val self.left,self.right = None,None
2021-05-20 16:28:28
696
原创 Leetcode 409 最长回文串(Python题解)
Leetcode 409 最长回文串(Python题解)题目:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。实例:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思路:当字母出现偶数次时,无论是添加再回文串的任何位置,都可以保持回文串。当字母出现奇数次时,例如’9’,其中
2021-04-09 20:57:27
381
原创 力扣 LeetCode 62. 不同路径 Pyhon题解
62. 不同路径题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?提示:1 <= m, n <= 100题目数据保证答案小于等于 2 * 109解题思路先把m*n的矩阵填满第一行第一列置为1,然后再观察,例如矩阵的[1][1]坐标,就只有2条路径,分别是上面和下面,再看[2][1],也就是上面的坐标的路
2021-03-16 12:04:47
94
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人