摘要: AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据 换句话说,就是Redis重启就会根据日志内容从头到尾执行一次来完成数据的恢复工作。 Tip: 一.RDB与AOF同时开启 默认先 阅读全文
posted @ 2018-08-19 21:19 割肉机 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 我们都知道,父进程fork()之后返回值为子进程的pid号,而子进程fork()之后的返回值为0。那么,现在就有一个问题了,子进程fork()的返回值是怎么来的?如果子进程又执行了一遍fork()函数,那么,按着完全复制的效果,父进程应该还会再fork()一次才对啊。 其实,在fork()函数执行中 阅读全文
posted @ 2018-08-19 21:17 割肉机 阅读(2277) 评论(0) 推荐(0) 编辑
摘要: 压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩 阅读全文
posted @ 2018-08-19 21:04 割肉机 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 0.前言 redis初始创建hash表,有序集合,链表时, 存储结构采用一种ziplist的存储结构, 这种结构内存排列更紧密, 能提高访存性能. 本文介绍ziplist数据结构 1.ziplist存储结构 ziplist并没有定义明确的结构体, 根据存储结构我们可以定义ziplist如下, 只是进 阅读全文
posted @ 2018-08-19 21:02 割肉机 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 案例目标 简单介绍 redis pipeline 的机制,结合一段实例说明pipeline 在提升吞吐量方面发生的效用。 案例背景 应用系统在数据推送或事件处理过程中,往往出现数据流经过多个网元;然而在某些服务中,数据操作对redis 是强依赖的,在最近的一次分析中发现:一次数据推送会对 redis 阅读全文
posted @ 2018-08-19 20:53 割肉机 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern 官网对于KEYS命令有一个提示: KEYS 的速度非常快,例如,Redis在一个有1百万个key的数据库里面执行一次查询需要的时间是40毫秒 。但在一个大的数据库中使用它仍然可能造成性能问 阅读全文
posted @ 2018-08-19 20:50 割肉机 阅读(23181) 评论(0) 推荐(1) 编辑
摘要: SpringRedisTemplate针对这个Scan进行了封装,示例使用(针对最新库spring-data-redis-1.8.1.RELEASE): Set<Object> execute = redisTemplate.execute(new RedisCallback<Set<Object> 阅读全文
posted @ 2018-08-19 20:48 割肉机 阅读(9229) 评论(0) 推荐(2) 编辑
摘要: 在写另一篇文章( link )的时候,涉及到过滤器(filter)功能。以前没有接触过,整理如下。 主要参考这两篇: http://blog.csdn.net/u011510825/article/details/51859656 http://redis.io/commands/scan 实验如下 阅读全文
posted @ 2018-08-19 20:46 割肉机 阅读(4530) 评论(0) 推荐(0) 编辑
摘要: 上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。1 阅读全文
posted @ 2018-08-19 11:00 割肉机 阅读(8526) 评论(2) 推荐(0) 编辑
摘要: 在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录。也就是说,一个表不能有多个主键,并且主键不能为空值。 无论是MongoDB还是MySQL,都存在着主键的定义。 对于MongoDB来说,其主键名叫”_id”,在生成数据的时候,如果用户不主动为其分配一个主键的话,Mon 阅读全文
posted @ 2018-08-19 09:52 割肉机 阅读(31848) 评论(0) 推荐(0) 编辑
摘要: 阅读目录 一、第一个问题:Key-Value数据库可以有好多的Key,没错,但对MongoDB来说,大错特错 二、第二个问题:FindOne({_id:xxx})就快么? 三、第三个问题:精细的使用Update 四、2.1.1. 登录时身份认证 五、2.1.2. 使用软件时的界面控制 六、2.1.3 阅读全文
posted @ 2018-08-19 09:51 割肉机 阅读(20380) 评论(1) 推荐(1) 编辑
摘要: "零拷贝"这三个字,想必大家多多少少都有听过吧,这个技术在各种开源组件中都使用了,比如kafka,rocketmq,netty,nginx等等开源框架都在其中引用了这项技术。所以今天想和大家分享一下有关于零拷贝的一些知识。 计算机中数据传输 在介绍零拷贝之前我想说下在计算机系统中数据传输的方式。数据 阅读全文
posted @ 2018-08-19 09:27 割肉机 阅读(821) 评论(0) 推荐(1) 编辑
摘要: 目录 通过 CompositeByteBuf 实现零拷贝通过 wrap 操作实现零拷贝通过 slice 操作实现零拷贝通过 FileRegion 实现零拷贝 此文章已同步发布在我的 segmentfault 专栏. 根据 Wiki 对 Zero-copy 的定义: "Zero-copy" descr 阅读全文
posted @ 2018-08-19 09:25 割肉机 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 熟悉TCP编程的读者可能都知道,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。木章开始我们先简单介绍TCP粘包/拆包的基础知识,然后模拟一个没有考虑TCP粘包/拆包导致功能异常的案例,最后通过正确例米探讨Netty是如何解决这个问题的。如果你已经熟悉了T 阅读全文
posted @ 2018-08-19 09:19 割肉机 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 原文:http://blog.sina.com.cn/s/blog_4c8c58ce0102vkbo.html 基本的IO编程过程(包括网络IO和文件IO)是,打开文件描述符(windows是handler,java是stream或channel),多路捕获(Multiplexe,即select和p 阅读全文
posted @ 2018-08-19 09:16 割肉机 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 1 Proactor和Reactor Proactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。 I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图: 1.1 select,poll,epol 阅读全文
posted @ 2018-08-19 09:07 割肉机 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 1、reactor(反应器)模式 使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式: 一个老板经营一个饭店, 传统模式 - 来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程) 后来客人越来越多,需要的服务员越来越多,资源条件 阅读全文
posted @ 2018-08-19 09:05 割肉机 阅读(547) 评论(0) 推荐(0) 编辑