自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

https://github.com/Wang-Jun-Chao

分享知识,创造快乐!

  • 博客(21)
  • 资源 (22)
  • 收藏
  • 关注

原创 【27-Redis设计与实现-链表】

链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis 使用的C 语言并没有内置这种数据结构,所以Redis 构建了自己的链表实现。链表在Redis 中的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时, Redis 就会

2017-12-27 07:40:35 792

原创 【26-Redis设计与实现-简单动态字符串】

Redis 没有直接使用C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串( simple dynamic string, SDS )的抽象类型,并将SDS 用作Redis 的默认字符串表示。在Redis 里面, C 字符串只会作为字符串字面量( s回ng literal )用在一些无须对字符串值进行修改的地方,比如打印日志。

2017-12-26 08:10:51 863

原创 【25-Reids内存优化】

edis2.2版本及以后,存储集合数据的时候会采用内存压缩技术,以使用更少的内存存储更多的数据。如Hashes,Lists,Sets和Sorted Sets,当这些集合中的所有数都小于一个给定的元素,并且集合中元素数量小于某个值时,存储的数据会被以一种非常节省内存的方式进行编码,使用这种编码理论上至少会节省10倍以上内存(平均节省5倍以上内存)。

2017-12-23 08:10:38 1005

原创 【24-Redis发布订阅】

订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。

2017-12-22 08:10:33 906

原创 【23-将redis当做使用LRU算法的缓存来使用】

当Redis被当做缓存来使用,当你新增数据时,让它自动地回收旧数据是件很方便的事情。这个行为在开发者社区非常有名,因为它是流行的memcached系统的默认行为。LRU是Redis唯一支持的回收方法。本页面包括一些常规话题,Redis的maxmemory指令用于将可用内存限制成一个固定大小,还包括了Redis使用的LRU算法,这个实际上只是近似的LRU。

2017-12-21 07:15:14 891

原创 【22-Redis管道】

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。

2017-12-20 07:27:59 734

原创 【21-Redis:LRU算法使用】

当Redis被当做缓存来使用,当你新增数据时,让它自动地回收旧数据是件很方便的事情。这个行为在开发者社区非常有名,因为它是流行的memcached系统的默认行为。

2017-12-19 08:18:31 909

原创 【20-Redis协议说明】

Redis协议在以下几点之间做出了折衷:简单的实现快速地被计算机解析简单得可以能被人工解析网络层Redis在TCP端口6379上监听到来的连接,客户端连接到来时,Redis服务器为此创建一个TCP连接。在客户端与服务器端之间传输的每个Redis命令或者数据都以\r\n结尾。请求Redis接收由不同参数组成的命令。一旦收到命令,将会立刻被处理,并回复给客户端。

2017-12-16 08:14:51 738

原创 【19-Redis集群规范】

Redis 集群是 Redis 的一个分布式实现,主要是为了实现以下这些目标(按在设计中的重要性排序):- 在1000个节点的时候仍能表现得很好并且可扩展性(scalability)是线性的。- 没有合并操作,这样在 Redis 的数据模型中最典型的大数据值中也能有很好的表现。- 写入安全(Write safety):那些与大多数节点相连的客户端所做的写入操作,系统尝试全部都保存下来。不过公认的,还是会有

2017-12-15 07:32:30 869

原创 【18-Redis集群教程】

Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误.Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令.

2017-12-14 07:48:31 739

原创 【17-Redis延迟监控框架】

每个Redis实例经常被用于每时每刻都要提供大量查询服务的场景,同时,对平均响应时间和最大响应延迟的要求都非常严格。当Redis用作内存系统时,它以不同的方式与操作系统进行交互,例如,持久化数据到磁盘上。再者,Redis实现了丰富的命令集。大部分命令执行都很快,能在确定时间内或对数时间内完成(译者注;对数时间是时间复杂度的一种),另外有些命令则是复杂度为O(N)的命令,会导致延迟毛刺

2017-12-13 08:22:09 1108

原创 【16-Redis的Sentinel】

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。自动故障迁移(Automatic failo

2017-12-12 08:12:35 450

原创 【15-Redis信号处理】

SIGTERM信号会让Redis安全的关闭。Redis收到信号时并不立即退出,而是开启一个定时任务,这个任务就类似执行一次SHUTDOWN命令的。 这个定时关闭任务会在当前执行命令终止后立即施行,因此通常有有0.1秒或更少时间延迟。万一Server被一个耗时的LUA脚本阻塞,如果这个脚本可以被SCRIPT KILL命令终止,那么定时执行任务就会在脚本被终止后立即执行,否则直接执行。

2017-12-11 07:52:45 830

原创 【14-Redis如何处理客户端连接】

Redis通过在TCP端口上进行监听,或者Unix socket(如果启用)的方式来接受客户端的连接。当一个新的客户端连接被接受执行以下操作:- 当Redis使用非阻塞I/O复用,客户端socket设置为非阻塞状态。- socket TCP_NODELAY属性被设置确保在连接中我们不会延迟。- 一个可读的文件事件被创建,因而当新的数据可以被访问时,Reids可以更快接收客户端在socket上的查询

2017-12-09 07:30:18 1261

原创 【13-Redis安全性】

本文档从以下几点提供了关于Redis安全主题的介绍:Redis提供的访问控制,代码安全问题,通过外部的恶意输入触发的攻击和其它类似的主题也包含在内。Redis被设计成仅有可信环境下的可信用户才可以访问。这意味着将Redis实例直接暴露在网络上或者让不可信用户可以直接访问Redis的tcp端口或Unix套接字,是不安全的。

2017-12-08 07:53:51 886

原创 【12-Redis持久化】

Redis 提供了不同级别的持久化方式:RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化

2017-12-07 07:36:51 598

原创 【11-Redis复制】

Redis复制很简单易用,它通过配置允许slave Redis Servers或者Master Servers的复制品。接下来有几个关于redis复制的非常重要特性: 一个Master可以有多个Slaves。Slaves能过接口其他slave的链接,除了可以接受同一个master下面slaves的链接以外,还可以接受同一个结构图中的其他slaves的链接。

2017-12-06 07:46:21 715

原创 【10-Redis分布式锁】

分布式锁在很多场景中是非常有用的原语, 不同的进程必须以独占资源的方式实现资源共享就是一个典型的例子。有很多分布式锁的库和描述怎么实现分布式锁管理器(DLM)的博客,但是每个库的实现方式都不太一样,很多库的实现方式为了简单降低了可靠性,而有的使用了稍微复杂的设计。这个页面试图提供一个使用Redis实现分布式锁的规范算法。我们提出一种算法,叫Redlock,我们认为这种实现比普通的单实例实现更安全

2017-12-05 07:06:13 1120

原创 【09-Redis-分区:怎样将数据分布到多个redis实例】

分区是将你的数据分发到不同redis实例上的一个过程,每个redis实例只是你所有key的一个子集。文档第一部分将介绍分区概念,第二部分介绍分区的另外一种可选方案。Redis分区主要有两个目的: 分区可以让Redis管理更大的内存,Redis将可以使用所有机器的内存。如果没有分区,你最多只能使用一台机器的内存。分区使Redis的计算能力通过简单地增加计算机得到成倍提升,Redis的网络带宽也会随着计算机和网卡的增加而

2017-12-04 08:36:49 1330

原创 【08-Redis大量数据插入】

有些时候,Redis实例需要装载大量用户在短时间内产生的数据,数以百万计的keys需要被快速的创建。我们称之为大量数据插入(mass insertion),本文档的目标就是提供如下信息:Redis如何尽可能快的处理数据。

2017-12-03 07:10:47 1291

原创 【07-Redis从文件中批量插入数据】

在redis中,有时候需要批量执行某些命令,但是在redis的redis-cli下,只能一条条的执行指令,实在太麻烦了!想到这,你是不是蓝瘦香菇? 如果能将要执行的指令一行行存储到文件中,然后用一行命令将文件中的命令一次执行完成,那肯定爽死了!所以下面,我要带你冒着手指怀孕的危险,让你爽一把

2017-12-01 07:43:10 986

JDK-8-API.chm

最新的JAVA JDK 8帮助文档,方便实用,开发必备。

2014-04-04

[2007-2012][华南理工历年机试试题]

非常全的华南理工考研计算机机试试题[2007-2012][华南理工历年机试试题].pdf

2013-03-03

Java CP/IP Socket编程

JAVA SOCKET 编程的经典之书,(中文版)里面的代码可直接复制使用! 目录: 第1章简介..........3 1.1 计算机网络,分组报文和协议..........3 1.2 关于地址..........6 1.3 关于名字..........8 1.4 客户端和服务器..........8 1.5 什么是套接字..........9 1.6 练习..........10 第2章基本套接字..........10 2.1 套接字地址..........10 2.2 TCP套接字..........17 2.2.1 TCP客户端..........17 2.2.2 TCP服务器端..........22 2.2.3 输入输出流..........26 2.3 UDP套接字..........28 2.3.1 DatagramPacket类..........28 2.3.2 UDP客户端..........30 2.3.3 UDP服务器端..........36 2.3.4 使用UDP套接字发送和接收信息..........38 2.4 练习..........40 第3章发送和接收数据..........41 3.1 信息编码..........42 3.1.1 基本整型..........42 3.1.2 字符串和文本..........48 3.1.3 位操作:布尔值编码..........50 3.2 组合输入输出流..........51 3.3 成帧与解析..........52 3.4 Java特定编码..........58 3.5 构建和解析协议消息..........59 3.5.1 基于文本的表示方法..........62 3.5.2 二进制表示方法..........65 3.5.3 发送和接收..........67 3.6 结束..........76 3.7 练习..........76 第4章进阶..........77 4.1 多任务处理..........77 4.1.1 Java 多线程..........78 4.1.2 服务器协议..........80 4.1.3 一客户一线程..........84 4.1.4 线程池..........86 4.1.5 系统管理调度:Executor接口..........89 4.2 阻塞和超时..........91 4.2.1 accept(),read()和receive()..........91 4.2.2 连接和写数据..........92 4.2.3 限制每个客户端的时间..........92 4.3 多接收者..........94 4.3.1 广播..........94 4.3.2 多播..........95 4.4 控制默认行为..........100 4.4.1 Keep-Alive..........100 4.4.2 发送和接收缓存区的大小..........101 4.4.3 超时..........101 4.4.4 地址重用..........102 4.4.5 消除缓冲延迟..........102 4.4.6 紧急数据..........103 4.4.7 关闭后停留..........103 4.4.8 广播许可..........103 4.4.9 通信等级..........104 4.4.10 基于性能的协议选择..........104 4.5 关闭连接..........104 4.6 Applets..........111 4.7 结束..........112 4.8 练习..........112 第5章 NIO..........112 5.1 为什么需要NIO?..........113 5.2 与Buffer一起使用Channel..........115 5.3 Selector..........118 5.4 Buffer详解..........125 5.4.1 Buffer索引..........125 5.4.2 创建Buffer..........126 5.4.3 存储和接收数据..........128 5.4.4 准备Buffer:clear(),flip(),和rewind()..........130 5.4.5 压缩Buffer中的数据..........132 5.4.6 Buffer透视:duplicate(),slice()等..........134 5.4.7 字符编码..........136 5.5 流(TCP)信道详解..........136 5.6 Selector详解..........139 5.6.1 在信道中注册..........139 5.6.2 选取和识别准备就绪的信道..........141 5.6.3 信道附件..........143 5.6.4 Selector小结..........144 5.7 数据报(UDP)信道..........144 5.8 练习..........149 1. 使用定长的写缓冲区改写TCPEchoClientNonblocking.java。..........149 2.使用Buffer和DatagramChannel编写一个回显客户端。..........149 第6章深入剖析..........149 6.1 缓冲和TCP..........152 6.2 死锁风险..........155 6.3 性能相关..........158 6.4 TCP套接字的生存周期..........158 6.4.1 连接..........158 6.4.2 关闭TCP连接..........164 6.5 解调多路复用揭秘..........167 6.6 练习..........169

2012-04-13

嵌入式试卷

1、 嵌入式系统的设计可以分成三个阶段:分析、 设计 和 实现 2、 目前使用的嵌入式操作系统主要有 Windows CE/Windows Mobile Linux、uCos、和 Symbian 3、 XScale微处理器使用的是ARM公司 ARMV5TE 版内核和指令集。 4、 微处理器有两种总线架构,使用数据和指令使用同一接口的是 冯诺依曼 ,分开的指令和数据接口、取指和数据访问可以并行进行的是 哈佛结构 5、 ARM微处理器有七种工作模式,它们分为两类 非特权模式 、 特权模式 。其中用户模式属于 非特权模式 6、 ARM核有两个指令集,分别是 ARM 、 Thumb 7、 ARM微处理器复位后,PC(R15)的地址通常是 0X0 , 初始的工作模式是 supervisor 8、在ARM体系构架中对复杂的内存管理是通过系统控制协处理器 cp15 和MMU(存储管理部件)来进行的。当系统发生 Data Abort(数据)异常和 Prefetch Abort(指令领取) 异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页面,以保证程序正常执行。 9、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是 GNU工具链 ,ARM公司提供的工具链是 ADS工具链

2011-11-24

JDK_API_1_6_zh_CN.chm

java技术开发文档。java程序员必有的参考

2011-09-22

keygen.rar

vmware 8 支持 window8 对想体验window8功能但不想直接安装的人来说是很好的选择!

2011-09-17

plsqldev9_CRACK.rar

plsql的代码编写可视化工具。方便易用。

2011-09-02

[JAVA案例开发集锦].(袁然&郑自国&邹丰).(第1版).pdf

[JAVA案例开发集锦].(袁然&郑自国&邹丰).(第1版).pdf 一本不错的JAVA开发书籍。

2011-08-19

Oracle+Database+10g完全参考手册.7z

介绍ORACLE 10g 全面的书籍。同时也是ORACLE 10g开发中的参考手册!

2011-07-26

[英文原版]O'Reilly.MySQL.Cookbook,2nd.Edition.chm

MYSQL 数据库的经典之作。每个数据库从业人员必需掌握的一种!

2011-07-26

sql server 2008 pdf

学习 sql server 2008 必不可少的开发书籍

2011-03-24

数据结构 C 习题答案 chm

经典典算法之书,是每个程序员必备的...

2011-03-02

MySQL权威指南 sql mysql

MySQL的权威经典,学MySQL的必备.每个数据库人员必会的一种人技能

2011-02-28

C#帮助文档 C#api

C# 帮助文档帮助你更深入了解C#.是C#开发必备之物 下载后请将文件重命名为为 "Csref.chm"否则可能无法使用.

2011-01-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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