大型网站分布式缓存技术

        说到互联网,就得了解一下分布式。虽然之前一直听说过分布式,但是也只是听说而已。并没有仔细的去了解分布式相关。现在想借着学习的机会,在重新的补一补(以后如果有新的认识还会更新)。

分布式概念

        个人的理解就是将一个系统拆成多个子系统,个个子系统之间有这关联关系,也就是具有较高的内聚性,比如说一个电商系统会包含多个子系统(库存,订单,售后等等),下面补充一下网上对分布式的说法。

    分布式系统就是将系统的应用层,数据层或其它部分构架成分布(物理和逻辑上的都可以)状(通常是网状)。分布式系统通常是为了增强系统的可扩展性、稳定性和执行效率。比如在线游戏通常就是分布系统,里面所谓的“区”就是分布系统里子例程。而分布式数据库其实也可以称作分布式系统,数据持久化层是分布的(数据存在不同的数据库中,可交互,有一套综管系统来维护数据的完整性和准确性)。
所以说分布式系统更准确地说是一种系统构架概念,不是一种技术。

分布式背景

  1. 系统架构复杂,当业务需求慢慢变多起来,系统随之臃肿。随之也带来维护困难,开发困难等问题。为解决这个问题,必须对这个系统进行垂直拆分,也就是拆分成多个系统,以保证各个系统之间业务逻辑清晰,各自对外工作。

  2. 用户量大,用户数量增多也会带来高并发问题,传统单点模式会让服务器和数据库面临很大的压力,如果没有处理好甚至会导致系统挂掉。所以我们要把不同应用系统部署到不同的节点上,不同的数据也要分至不同的物理节点,以减轻应用层和数据层的压力。

常用缓存技术

先了解下常用的数据库

关系型数据库:mysql、oracle、db2、mssql等 (支持事务,关联查询方便,技术成熟)

非关系型数据库(NoSQL):MongoDB、HBase、Redis、LevelDB等(高并发下读写能力强,支持分布式易扩展)

Redis,Memcache,SSDB 优缺点

redis:支持多种类型,String,Hash,List,Set等,并且有高可用的解决方案和集群方案,支持水平扩容,单线程。

SSDB:是基于谷歌LevelDB引擎,性能极高。可以和redis完美整合,但是高可用性目前还不如redis,可用于快速存储10亿级别列表数据。

memcache:多线程,性能不如redis

Redis介绍

        Redis是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求(非关系型的、分布式的、开源的。水平可扩展的)

优点:

  1. 对数据高并发读写

  2. 对海量数据的高效率存储和访问
    对数据的可扩展性和高可用性

缺点:

  1. redis (ACID处理非常简单)

  2. 无法做到太复杂的关系数据库模型

  3. Redis是以key-value store 存储,data structure service 数据结构服务器。键可以包含:(string)字符串,哈希,(list)链表,(set)集合,(zset)有序集合。这些数据集合都支持push/pop、add/remove及取交集和并集以及更丰富的操作,redis支持各种不同的方式排序,为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加到文件记。

Redis目前业界提供三种方式去应用在生产环境

第一种:使用主从复制的方式

第二种:使用高可用哨兵、Keepalived的方式

第三种:集群方式或第三方支持如codis集群等技术

SSDB 简介

SSDB是一个快速的用来存储十亿级别列表数据的开源 NoSQL 数据库。

SSDB官网:http://ssdb.io/zh_cn/

  1. 替代 Redis 数据库, Redis 的 100 倍容量

  2. LevelDB 网络支持, 使用 C/C++ 开发

  3. Redis API 兼容, 支持 Redis 客户端

  4. 适合存储集合数据, 如 list, hash, zset...

  5. 客户端 API 支持的语言包括: C++、PHP、Python、Cpy、Java、NodeJS、Ruby、Go。

  6. 持久化的队列服务
    主从复制, 负载均衡


Redis 和SSDB整合使用    

  1. 由于Redis的特性和SSDB的特性基本一致,并且各有优缺点,所以我们一般使用Redis+SSDB整合架构方式实现我们的分布式缓存存储解决方案。

  2. 利用Redis对数据的高可用等特性,对SSDB的兼容。

  3. 利用SSDB基于LevelDB的高性能读写的特性,可以使用SSDB的写特性。

 

后面会补上代码。
 

转载于:https://my.oschina.net/u/2618722/blog/653141

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值