随笔分类 - 开源服务器
摘要:Redis 数据结构的实现 先看个对照关系: 再讨论每种数据结构的实现原理: 双端链表 实现如下: 字典(dictionay) Redis 的字典使用哈希表作为底层实现, 哈希表的实现如下: 字典的实现: 扩张和收缩(rehash) 随着操作的不断执行, 哈希表保存的键值对会逐渐地增多或者减少, 为
阅读全文
摘要:beanstalkd 是一个轻量级消息中间件,其主要特性: 基于管道 (tube) 和任务 (job) 的工作队列 (work-queue):d 管道(tube),tube类似于消息主题(topic),在一个beanstalkd中可以支持多个tube,每个tube都有自己的producer和cons
阅读全文
摘要:Pika pika是360奇虎公司开源的一款类redis存储系统,主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。 Pika 就是针对这些场景的一个解决方案: Pika 的单线程的性能肯定不如
阅读全文
摘要:消息队列库——ZeroMQ ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。 ZMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统
阅读全文
摘要:使用 Redis Cluster Redis 3.0 在2015年出了Stable版本,3.0版本相对于2.8版本带来的主要新特性包括: 实现了Redis Cluster,从而做到了对集群的支持; 引入了全新的"embedded string" 对象编码方式,从而实现了更少的缓存丢失和在特定的工作负
阅读全文
摘要:TFS ——分布式文件存储系统 TFS(Taobao File System)是淘宝针对海量非结构化数据存储设计的分布式系统,构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。 TFS架构 与Tair类似,TFS也是由NameServer和DataServer组成: 为了容灾,
阅读全文
摘要:Codis——分布式Redis服务的解决方案 之前介绍过的 Twemproxy 是一种Redis代理,但它不支持集群的动态伸缩,而codis则支持动态的增减Redis节点;另外,官方的redis 3.0开始支持cluster。 codis和twemproxy最大的区别有两个: codis支持动态水平
阅读全文
摘要:Tair 分布式K-V存储方案tair 是淘宝的一个开源项目,它是一个分布式的key/value结构数据的解决方案。作为一个分布式系统,Tair由一个中心控制节点(config server)和一系列的服务节点(data server)组成,config server 负责管理所有的data ser...
阅读全文
摘要:BerkeleyDB库简介BerkeleyDB(简称为BDB)是一种以key-value为结构的嵌入式数据库引擎:嵌入式:bdb提供了一系列应用程序接口(API),调用这些接口很简单,应用程序和bdb所提供的库一起编译/链接成为可执行程序;NOSQL:bdb不支持SQL语言,它对数据的管理很简单,b...
阅读全文
摘要:SSDB数据库SSDB是一套基于LevelDB存储引擎的非关系型数据库(NOSQL),可用于取代Redis,更适合海量数据的存储。另外,rocksdb是FB在LevelDB的二次开发版本,因此也存在使用RocksDB作为存储引擎的SSDB版本,可以参考这里。编译和安装wget --no-check-...
阅读全文
摘要:Twemproxy缓存代理服务器Twemproxy 概述Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数。Twemproxy是由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis/Memcach...
阅读全文
摘要:Kafka——分布式消息系统 架构 Apache Kafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群。 设计目标: (1) 数据在磁盘上的存取代价为O(1)(2) 高吞吐率,在普通的服务器上每秒也能处理几十
阅读全文
摘要:ElasticSearch 集群首先看下ElasticSearch(ES)的架构:术语解释:cluster:代表一个集群,集群中有多个节点,其中有一个master节点,master通过选举自动产生;shards:代表索引分片,ES可以把一个完整的索引分成多个分片,并将它们分布到不同的节点上,从而构成...
阅读全文
摘要:ElasticSearch索引 ElasticSearch 是一个分布式可扩展的实时搜索引擎,它建立在开源搜索引擎框架Apache Lucene基础上。ElasticSearch 不但包括了全文搜索功能,还支持一下特性:1、分布式实时文件存储,将每一个字段都编入索引,使其可以被搜索;2、实时分析的分
阅读全文
摘要:Scribe日志收集工具概述Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理。它为日志的“分布式收集,统一处理”提供了一个可扩展的,高容错的...
阅读全文
摘要:LevelDB库简介一、LevelDB入门LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,l...
阅读全文
摘要:Varnish 4.0 简介 Varnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有: (1)是基于内存缓存,重启后数据将消失。(2)利用虚拟内存方式,io性能好。(3)支持设置0~60秒内的精确缓存时间。(4)VCL配置管理比较灵活。(5)32位机器上缓存文件大小为最大2G。(
阅读全文
摘要:Redis 服务器 Remote Dictionay Server Redis是一个key-value持久化产品,通常被称为数据结构服务器。 Redis的key是string类型;value可以是string、hash、list、set、sorted set等类型; 实际上,Redis内部会将key
阅读全文
摘要:Memcached 缓存服务器Memcached 是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态web应用的速度、提高可扩展性。主要特点:1、C/S架构,协议简单;2、基于libevent的事件处理(epoll);3、Slab Allocat...
阅读全文
摘要:Squid学习笔记1、安装前的配置编译安装之前需要校正的参数主要包括File Descriptor和Mbuf Clusters。1、File Descriptor查看文件描述符的限制数目:ulimit –n调整文件描述符的数目需要3步:step 1,编辑系统头文件/usr/include/bits/...
阅读全文

浙公网安备 33010602011771号