Redis知识点梳理总结

2021-04-16
阅读 14 分钟
2.9k
​ redis全称 Remote Dictionary Service(远程字典服务)。Redis存储的都是K-V对,Redis里存放的任何一条数据都有唯一的key作为名称。Redis中,所有的key都存储在一个很大的字典中。一个Redis实例有多个库(database),可用过配置文件里的“databases”配置,库索引从0到databases-1,可以使用指令SELECT <index>切...

Ceph架构和原理

2020-12-03
阅读 5 分钟
8.9k
Ceph独一无二地统一的系统提供了对象存储、块存储和文件存储功能。Ceph存储集群由几个不同的软件守护进程组成(比较重要的两个是MON和OSD),每个守护进程负责Ceph的一个独特功能并将值添加到相应的组件中。    

Mysql的InnoDB存储引擎锁机制

2020-09-30
阅读 4 分钟
2k
原子性(atomicity),指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作执行都成功,才算整个事务成功。如果事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。

MySQL 分区表

2020-08-18
阅读 7 分钟
2.5k
MySQL分区就是将一个表分解为多个更小的表。从逻辑上讲,只有一个表或一个索引,但在物理上这个表或者索引可能由多个物理分区组成。每个分区在物理上都是独立的。MySQL数据库分区类型:

MySQL日志之binlog、redo log、undo log

2020-08-14
阅读 7 分钟
4.6k
默认binlog是没有开启的,可以通过show variables like 'log_bin';查看。通过在my.cnf配置log-bin[=name]可以启动binlog,如果设置name,则默认binlog文件名为主机名,后缀名为binlog的序列号,所在路径为数据库所在目录(datadir),如:

堆排序和优先队列(C实现)

2020-06-30
阅读 7 分钟
3.1k
二叉堆是一个完全二叉树,分为最大堆和最小堆。在最大堆中,父节点的值大于等于其左右子节点的值,即最大堆中根节点的值最大。在最小堆中,父节点的值小于等于其左右子节点的值,即最小堆中根节点的值最小。  本文以最大堆为例。  二叉堆一般用数组表示,本文直接用int型数组存储堆数据(为了能动态扩展也可以使用C++STL...

Kafka控制器选举原理

2020-06-28
阅读 3 分钟
4.1k
在Kafka集群中会有一个或多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本(一个分区会有多个副本,其中只有leader副本对外提供读写服务)出现故障时,由控制器负责为该分区选举新的leader副本。当检测到某个分区的ISR集合发生变...

Kafka高性能原因

2020-06-22
阅读 3 分钟
5.4k
简单回顾下Kafka消息,Kafka中的消息以主题(Topic)为单位进行分类,主题是一个逻辑上的概念,主题还可以细分为一个或多个分区,一个分区只属于单个主题,所以也可以把分区称为主题分区(Topic-Partition)。同一个主题下的不同分区包含的消息是不同的,每个分区还可以有多个副本用于容灾备份。分区在存储层面可以看作...

Go语言接口内部布局和方法集详解

2020-05-28
阅读 2 分钟
1.1k
如果用户定义的类型实现了某个接口类型声明的一组方法,那么这个用户定义的类型的值就可以赋给这个接口类型的值。这个赋值会把用户定义的类型的值存入接口类型的值。赋值完成后得到的值称为接口值。接口值是一个两个字长度的数据结构,第一个字包含一个指向内部表的指针。这个内部表叫作iTable,包含了所存储的值的类型...

Go语言切片详解

2020-05-28
阅读 5 分钟
1.4k
Go语言中的切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数append来实现的,还可以通过对切片再次切片来缩小一个切片的大小。因为切片在内存中是连续的,所以切片还能获得索引、迭代以及垃圾回收优化的好处。

网关(gateway)——不同团队子系统登录验证问题总结

2020-05-28
阅读 5 分钟
4.5k
  一个主系统和若干其他团队(或公司)开发的子系统(主系统和每个子系统都有前后端)需要对外展现为一个系统(实际上没有主系统和子系统之分,这里是因为主系统研发团队需要对整个系统负责,而子系统研发团队只对自身系统负责)。因时间关系,主系统研发团队不再重新开发界面,而是直接跳转到子系统界面。这...

简单服务发现协议(SSDP)编程指导

2020-05-28
阅读 1 分钟
3.9k
网上对ssdp理论介绍的一大把,缺乏从编程角度的一个指导,这里不会长篇大论ssdp理论,只是根据实际编码经验对用ssdp进行编码做个浅显的指导,希望能让同行少走一些弯路。

Linux守护进程(Daemon)介绍与C++实现

2020-05-28
阅读 4 分钟
8.6k
守护进程(deamon)是生存期长的一种进程。它们常常在系统引导装入时启动(如果需要守护进程随系统自启动,需要在/etc/init.d目录下放置响应的启动脚本,或者利用systemctl来控制,还有一些其他方法如supervisor等,读者可自行网上搜索相关用法),仅在系统关闭时才终止。因为它们没有控制终端,所以说它们是在后台运行...

Docker知识点的系统化梳理

2020-05-28
阅读 22 分钟
2.6k
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到其他机器上。容器可以简单地理解为是一个修改过的运行时环境,可以隔离所有的资源(除非明确允许)。UNIX中使用容器隔离资源已经有很长一段时间了,但是直接使用容器难度大,配置复杂,容易出错。Docker使用现有...

排序算法整理(Python实现)

2020-05-28
阅读 5 分钟
975
冒泡排序(Bubble Sort)是稳定排序,其基本思想是:遍历待排序列,依次两两比较,如果顺序错误就交换。如果从头开始遍历,把较大的交换到后面,结果就是越大的数据越往下沉,所以也可以称为“下沉排序”;如果从尾开始向前遍历,把较小的交换到前面,结果就是越小的数据越往上浮,这就是“冒泡排序”名称的由来。冒泡排序比较...

redis crackit入侵事件总结

2020-05-27
阅读 4 分钟
1.9k
ps -ef 可以看到进程 “/opt/yam/yam -c x -M stratum+tcp://46fbJKYJRa4Uhvydj1ZdkfEo6t8PYs7gGFy7myJK7tKDHmrRkb8ECSXjQRL1PkZ3MAXpJnP77RMBV6WBRpbQtQgAMQE8Coo:x@xmr.crypto-pool.fr:6666/xmr”。