2020年9月23日

深入了解Redis(5)-内存回收

摘要:了解redis内存回收之前,需要先了解过期键删除策略。 过期键删除策略 1.定时删除 在设置键的过期时间的同时,创建一个timer,在定时器在键的过期时间到达时,立即执行对键的删除操作。内存友好型策略,一旦键过期,就会被删除,并释放所占用的内存,Cpu 不友好,当一批数量比较多的键过期时,正好遇上C 阅读全文

posted @ 2020-09-23 15:40 家有四只胖加菲 阅读(50) 评论(0) 推荐(0) 编辑

2020年9月13日

深入了解Redis(4)-类型检查与命令多态

摘要:Redis 中用于操作键的命令基本上可以分为两种类型。 其中一种命令可以对任何类型的键执行, 比如说 DEL 命令、 EXPIRE 命令、 RENAME 命令、 TYPE 命令、 OBJECT 命令, 等等。 而另一种命令只能对特定类型的键执行, 比如说: SET 、 GET 、 APPEND 、  阅读全文

posted @ 2020-09-13 23:58 家有四只胖加菲 阅读(18) 评论(0) 推荐(0) 编辑

2020年8月28日

深入了解Redis(3)-对象

摘要:Redis主要的数据结构有简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合,等等。但Redis并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统, 这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象, 每种对象都用到了至 阅读全文

posted @ 2020-08-28 16:51 家有四只胖加菲 阅读(71) 评论(0) 推荐(0) 编辑

2020年8月4日

深入了解Redis(2)-rehash与渐进式rehash

摘要:内容摘抄《Redis设计与实现》 一、字典 了解redis的扩容之前,需要先了解redis哈希表的底层实现:字典。 Redis 字典所使用的哈希表由 dict.h/dictht 结构定义: typedef struct dictht { // 哈希表数组 dictEntry **table; // 阅读全文

posted @ 2020-08-04 17:47 家有四只胖加菲 阅读(29) 评论(0) 推荐(0) 编辑

2020年8月3日

深入了解Redis(1)-字符串底层实现

摘要:一.简单动态字符串(SDS) Redis中字符串实现有两种方式,C语言传统字符串(以空字符结尾的字符数组)和简单动态字符串(SDS),并将SDS作为默认字符串表示. C字符串只会作为字符串字面量,用在一些无需对字符串值进行修改的地方,比如打印日志: redisLog(REDIS_WARNING,"R 阅读全文

posted @ 2020-08-03 11:56 家有四只胖加菲 阅读(55) 评论(0) 推荐(0) 编辑

2020年7月17日

海量数据查找最大的前k个数(小顶堆)

摘要:在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最好的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题.例如搜索最热门的商品,最活跃的用户. eg:有1亿个浮点数,如果找出期中最大的10000个? 最容易想到的方法是将数据全部排序,然后在排序后的集合中 阅读全文

posted @ 2020-07-17 14:32 家有四只胖加菲 阅读(223) 评论(0) 推荐(0) 编辑

2020年7月10日

什么是内存泄漏,为什么会导致内存溢出?

摘要:工作一段时间后,会经常听到内存溢出,那内存溢出到底是哪里的内存溢出,是什么原因导致的,如何解决,今天就来深入了解一下. 在java中,要了解内存,需要先清楚jvm内存模型,我们常说的java内存实际上就是指Runtime Data Area,分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分. 阅读全文

posted @ 2020-07-10 17:16 家有四只胖加菲 阅读(651) 评论(0) 推荐(0) 编辑

2020年6月9日

如何定位生产环境cpu飙升问题

摘要:服务器日常工作中,经常出现某个进程cpu占用过高疯狂报警,导致服务器挂掉,这时候除了重启服务器和回滚,还需要定位到问题出现并解决. (因为没有现成故障图可以分享,所以截取一下网上的图进行分析) 1.查看故障进程 直接进入服务器,输入top命令,可以看到PID为1878的进程cpu占用达到200%,c 阅读全文

posted @ 2020-06-09 10:06 家有四只胖加菲 阅读(76) 评论(0) 推荐(0) 编辑

2020年1月3日

分布式事务框架-seata初识

摘要:一、事务与分布式事务 事务,在数据库中指的是操作数据库的最小单位,往大了看,事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。 那为什么会有分布式事务呢?单机事务是通过将操作限制在一个会话内通过数据库本身的锁以及日志来实现ACID.因为引入了分布式架构 阅读全文

posted @ 2020-01-03 13:55 家有四只胖加菲 阅读(640) 评论(2) 推荐(0) 编辑

为什么使用kotlin可以节省开发时间

摘要:前言:.kotlin是一门语言,光靠一篇文章要入门不太现实,所以这篇文章重点讲的是kotlin相对于java的一些特性和这些特性带来的好处. 一、简单介绍 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并 阅读全文

posted @ 2020-01-03 10:56 家有四只胖加菲 阅读(264) 评论(0) 推荐(0) 编辑

导航