Olive的博客

一只小菜鸟~~

Self-assessment Checklists of HSK

Dear friends, I’m a postgraduate student of Renmin University of China, majoring in Teaching Chinese as a Second language, I’m doing a research about...

2018-12-08 14:42:21

阅读数 38

评论数 0

从慢查询实例中分析mysql索引及查询优化(一)

写这个博客也算是阴差阳错。上次做了个需求:退款列表导出(可以翻翻之前的博客,有写)。虽然事情过了那么久,现在我还是想要吐槽下,这个需求是真的坑。。 这个博客大概是这么分布的:第一篇就根据实际场景来分析下索引及查询上的优化;第二篇和第三篇(如果我还能写得出来第三篇的话。。)来系统地整理下mysql...

2018-08-04 23:30:49

阅读数 247

评论数 0

开发概述——退款记录导出至excel

最近做了一个(奇坑的)需求,用户退款信息导出至excel。听起来似乎是一个简单的小功能,但是做起来却发现有数不清的大坑- -,整个项目我大约花了2-3周时间去开发(当然中间穿插着一些其他的需求),并后续仍在优化或解决bug。不过现在已经完成,大部份的坑也已经被填满了。首先来说下整体的开发流程图:对...

2018-07-08 11:21:16

阅读数 180

评论数 0

Java用POI读取excel文件,报异常:NotOLE2FileException: Invalid header signature; read xxx, expected 0xE11AB1A1

这几天在开发时遇到了极其坑爹的问题。开发的主要功能是在导出某些订单数据至Excel,因为自己一个一个去写表头这种操作代码耦合性实在太强,到时想要修改表头格式又需要回到去代码中修改,所以这是一种很愚蠢的零分操作!那么在这里就用到了POI的Excel模版功能(POI是apache提供给java对off...

2018-06-18 20:59:45

阅读数 4147

评论数 1

Java中@Param注解

@Param:用来在DAO层中声明参数,如:List<News> selectByUserIdAndOffset(@Param("userId") int userId, @Param("offset...

2018-04-18 16:26:51

阅读数 7486

评论数 0

Redis源码(十三)——集群

这是Redis源码系列最后一篇博客咯~之前因为出去玩所以隔了很久才更新~   在前面的博客中提到我们可以选择哨兵Sentinel+主从复制的功能来实现高可用的Redis数据库方案,从而完成复制和故障转移的需求。事实上通过Redis集群(cluster)也能起到相同的作用。集群通过分片(shardi...

2018-02-09 13:36:00

阅读数 153

评论数 0

Redis源码(十二)——哨兵Sentinel

如果当系统中只有一台Redis服务器运行时,假设服务器宕机了,那么所有的服务都将不可用,这对系统来说是不可忍受的。那么备份就是一个很自然的想法了。前面的博客中我们讲到了Redis的主从复制,应用Redis主从复制的功能,我们对主服务器配置几台从服务器从而对主服务器进行备份,主从服务器内的数据保持一...

2018-01-24 11:21:13

阅读数 185

评论数 0

Redis源码(十一)——Redis的主从复制

Redis中可以发送SLAVEOF命令让一个服务器A成为另一个服务器B的“slave”,从而去复制B,称A为从服务器(slave),B为主服务器(master)   关于复制,2.8版本以前及以后实现有一些不同,2.8版本以前的复制在断线重连后效率较低,所以我们在这里只分析下2.8版本以后的复制。...

2018-01-23 11:06:35

阅读数 194

评论数 0

Redis源码(十)——Redis的客户端和服务器

在前面的博客中,有些内容已经涉及到了Redis服务器或者客户端的一些属性,如上一篇博客关于Redis的RDB持久化中关于save选项来设置服务器的状态等。那么接下来这篇博客中就分析下Redis的客户端以及服务器的属性及操作。   一、Redis客户端 redis.h中的redisClient...

2018-01-22 10:34:24

阅读数 1109

评论数 0

Redis源码(九)——Redis的持久化:RDB及AOF

我们知道Redis的数据库数据是储存在内存中的,那么如果Redis服务器进程被kill了或关闭了,那么服务器中的所有数据都会消失,所以我们需要对Redis的数据进行持久化即保存在硬盘中。   Redis有两种持久化的方案——RDB和AOF(Append OnlyFile)。   一、RDB持久化 ...

2018-01-21 14:36:35

阅读数 140

评论数 0

Redis源码(八)——Redis的数据库

在前面的博客中,对Redis的底层数据结构和Redis中的几种对象做了相对详尽的分析,但是对于Redis——作为一种高速分布式数据库,我们并没有对Redis的一些典型功能例如存取键、设置过期时间、主从复制等作出介绍。接下来我们将对Redis的一些功能作出详细的分析。 作为一种数据库,Redis的数...

2018-01-17 20:55:07

阅读数 198

评论数 0

Redis源码(七)——Redis中五种对象

在前面的博客中,介绍了Redis中用所有底层数据结构,如简单动态字符串(SDS)、链表、字典、跳跃表,整数集合和压缩链表。Redis就利用上述的六种底层数据结构来构造了五种数据库对象——字符串、列表、哈希、集合和有序集合。        我们知道Redis是一个“key-value”数据库,其中的...

2018-01-15 21:12:01

阅读数 166

评论数 0

Redis源码(六)——压缩列表

一、压缩列表(ziplist)的定义与实现    压缩列表是一种为了节约内存而开发的顺序数据结构,是列表及哈希对象的底层实现之一。当列表中只有少量的列表元素,且列表元素是小整数值或者较短的字符串,Redis就会用压缩列表作为列表对象的底层实现;当哈希对象中只包含少量键值对,而且键值都是小整数或...

2018-01-11 20:24:34

阅读数 139

评论数 0

Redis源码(五)——整数集合

一、整数集合(intset)的定义与实现    整数集合是Redis中集合的底层实现之一,当集合只包含整数且集合的元素数目不大是,Redis是使用整数集合作为集合的底层实现的。 整数集合的实现在src的intset.h和intset.c中: typedef struct intse...

2018-01-10 22:26:45

阅读数 134

评论数 0

Redis源码(四)——跳跃表

跳跃表(skiplist)的定义与实现   在对排行榜数据进行排序时,我们会用到Redis中的有序集合对象(sorted set),跳跃表就是有序集合的底层实现之一。跳跃表是一种有序的数据结构,每个节点中都维持着多个指向其他节点的指针,所以可以快速地访问节点。跳跃表的查找速度平均为O(l...

2018-01-09 21:11:27

阅读数 123

评论数 0

Redis源码(三)——字典

一、字典(dictionary)的定义与实现   在使用Redis中,我们会经常用到哈希(hash)对象。哈希对象中存在key、field和value,每一个field都对应一个value。我曾经使用哈希对象来缓存不同平台上的书籍数据——平台id为key,书的id为field,需要的数据为va...

2018-01-04 21:12:14

阅读数 133

评论数 0

Redis源码(二)——链表

Redis中的链表是一个应用十分广泛的底层数据结构,常用的Redis列表(List)底层实现之一就是链表。我曾用Redis的列表缓存过分布式服务节点的ip。Redis列表的一些操作命令在这里就不做赘述了,有兴趣的同学不妨装个Redis自己动手实践下。   言归正传,继续来讲Redis的底层数据...

2018-01-04 19:22:12

阅读数 129

评论数 0

Redis源码(一)——简单动态字符串

一、什么是简单动态字符串   字符串是Redis中最简单的一个数据结构,打开Redis的源码后可以发现,Redis的底层是通过C语言来实现的,然而Redis并没有使用C语言中的字符串类型,而是重构了一种新的字符串类型——简单动态字符串(simple dynamic string,SDS)。那么...

2018-01-03 20:17:53

阅读数 169

评论数 0

Redis源码——开篇

接下来的博客主攻Redis的源码,我们知道Redis是现在很流行的一个缓存数据库,大多的公司都会选择使用Redis作为数据库的缓存。在找实习以及找工作中的面试中,很多面试官也会对Redis技术很感兴趣。对于一项技术,比会去使用它更重要也是更高层的是理解内部的源码实现,剖析作者这么设计的原理及思维。...

2018-01-02 19:07:40

阅读数 176

评论数 0

2017这一年

终于赶在2017年末看完了两本书——《分布式服务架构》和《设计模式》。前者碍于相关经验的缺失,只能说走马观花般看个大概;后者的23种设计模式已经在我的博客中写成了相关的技术博客——尽管把学习的过程写成了博客,但对于23种设计模式我也不能说是融会贯通,仍然需要在实际应用中再次深化,在此也很希望能有看...

2017-12-31 19:49:00

阅读数 133

评论数 1

提示
确定要删除当前文章?
取消 删除
关闭
关闭