1-Redis简介

    随着业务的不断扩充,当前公司的基础平台项目已经不能满足当下大并发、高可用等一系列问题。所以决定重新进行设计和开发,已达到当前众多业务的需求,考虑到高并发下对以往数据库的访问压力过大和性能瓶颈,所以决定加入缓存机制。通过对当前流行的几大Nosql数据库进行对比考虑,决定采用redis这个key-value存储系统。和Memcached类似,但它支持储存的value类型相对更加全面,包括string、list、set、zset、hash类型。而且这些数据类型都支持push/pop、append、lrange等等操作,而且这些操作都是原子性的,当然不仅这些,redis还支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中,并通过周期性的把当前更新的数据写入磁盘或者把修改的操作写入到记录文件。还有很重要的一点,它支持集群部署master-slave,不仅支持数据持久化、事物处理、主从复制、容灾恢复...

    不多说进入正题,谈到Redis首先要说的就是NoSql,NoSql=Not Only Sql,意思就是不仅仅是SQL,泛指非关系型的数据库。随着信息化多的和互联网的不断发展,传统的RDBMS(关系型数据库)在一些业务上开始出现问题。首先对数据库存储的容量要求越来越高,单机已经无法满足需求,所以分布式集群开始慢慢用来解决这些污染难题,Nosql是一项全新的数据库,非关系型、分布式、开源的、水平可扩展的,通常拥有模式自由、支持简易复制、简单的API、最终一致性、大容量数据等,以其速度快、操作简单等越来越受到欢迎。

    我们知道,在以前,一个服务器的访问量一般都不大,用单个数据库完全可以轻松应付,常用的服务器架构模型就是,网络I/O+服务器高性能编程技术+数据库。数据库的并发请求数量有限,但是随着业务量和数据量的剧增,应用服务器的并发请求数量过大,那么数据库出现了瓶颈,正常来说,对此我们可以做出优化,我们可以采用缓存队列+连接池的技术进行性能提升,主要的业务逻辑全部放到应用服务器处理,数据库只做辅助的业务处理,将热点数据存储至缓存,缓存和数据库同步更新,如果缓存失效,重新去数据库查询,一旦数据库中数据更新,立即通知前端缓存进行数据更新,实时性较高,如果缓存数据过大,内存不够,那么我们再将不活跃的数据换出。那么,NoSql的应用场景应运而生。我们可以进行服务垂直架构和集群部署,数据库进行读写分离,对数据库操作进行一些负载均衡,我们还可以通过数据库的分库分表技术来进行提升瓶颈。对于更新的数据调用写库master,查询操作可以从从库进行读写分离。将原来的多种应用业务进行业务拆分,每一种单独的业务作为一个计算节点,在原来的client和应用服务器之间加上一个集群管理服务器,作为集群监控、调用和管理。集群管理服务器实时获取每一个应用服务器的的负载情况,进行具体的任务调度,根据具体的业务设计负载均衡策略,应用服务器被动接受任务。日常影响服务器性能的因素,大致有数据拷贝、环境切换(多线程)、具体任务提交、锁竞争等,将这些问题处理好也能加快服务器性能。

    扯的优点乱,逻辑性有点差,随心写吧。补充一下读写分离,由于数据库的写入压力增大,而缓存只能缓解数据库的读取压力。读写集中在一个数据库上让数据库压力倍增,所以采用主从复制技术来提高读写性能问题,我们知道Mysql的主从复制,在读写分离的基础上,当我们的数据库又一次写压力出现瓶颈时,数据量急速猛增,并且MyISAM使用表锁,在高并发场景下回出现严重的锁问题,所以,这时,我们开始使用分库和分表来缓解写压力和数据增长的扩展问题。以Mysql为例,加入数据库存储一些大文本文件,导数据库表非常大,如果进行数据恢复时,速度会异常的慢,不光这些,Mysql的扩展性很差,大数据下的I/O压力大,表结构更改也比较麻烦,而Nosql数据库则能解决大规模数据集合和多种数据种类带来的困难,因为它的数据类型存储不需要固定的模式,不需要的多余的更改就可以进行横向扩展。

    易扩展:Nosql虽然数据库种类繁多,但是一个共同的特点就是去掉了关系数据库的关系型特性,数据之前无关系,这样就非常容易扩展。

    高性能:Nosql数据库都有非常高的读写性能,尤其是在大数据量下,性能表现同样很优秀。

    数据模型灵活:Noslq无需事先为要存储的数据进行定义,随时可以进行数据格式定义。

    介绍完毕,现在开始Redis介绍,Redis(REmote DIctionary Server)远程字典服务器,免费开源,是一个高性能的(Key/Value)分布式内存数据库。其特点为,数据类型丰富,各种各样的问题都可以映射到这些数据结构中,Redis数据结构致力于解决用户问题,性能方面,Redis支持集群加之本身作为内存数据库我们可以很方便的进行每秒数千万的访问,并且Redis支持数据持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载使用,集群方面Redis支持数据备份和容灾恢复,保证了高可用,支持多种语言接口,支持事务、发布订阅等功能,总体性价比较高。

    好了,介绍完毕,未完待续。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值