JAVA面试系列(三)redis概念、下载安装、面试问题

一.redis基础概念

1.什么是redis?

redis:Remote Dictionary Server远程字典服务。基于内存运行的高速缓存数据库,开源,C语言编写,高性能(key/value)的分布式内存数据库,支持持久化,NoSQL(非关系型数据库)。

注意,redis本质是啥?是缓存还是数据库?是数据库。而且是分布式、非关系型的数据库。

2.关系型数据库和非关系型数据库的区别

提到redis,往往绕不开mysql,一个非关系型,一个关系型,同样都是应用非常广泛的。

①应用成本:

NOSQL一般来说都是开源免费的,但是关系型DB大部分都是收费的,而且价格很高,除了Mysql,mysql是开源的,这也是它应用非常广泛的一个原因,mysql是关系型数据库中为数不多的开源产品。

②存储方式:

关系型数据库是表格式的,数据都存储在表的行和列内,表与表之间很容易关联起来,这对业务数据有很大的便利,因为数据都是存在关系的,连表查询很重要,提取数据很方便。非关系型则相反,大量数据存储在数据集合中,采用特殊的数据结构(比如键值对),数据之间你很难找出清晰的关系。

③存储结构:

关系型数据库是结构化数据,比如我们在存数据之前,要先建立表,要预设表的结构(列的预设),这带来了可靠性和稳定性,最重要的是规定了数据的形式和内容,缺点就是修改数据困难。非关系型不结构化数据,它是动态结构,比较擅长于数据的变化,以及针对不同数据类型的调整。

④存储扩展:

这一点可以说是关系型数据库最致命的点。关系型数据库想要扩展提升,比如提高吞吐量,处理速度等,因为它的数据存储在关系表,操作性能涉及到多个表,这是有瓶颈的,除非你把每一个表都去针对地改善性能,在复杂业务情况下,这几乎是不可能的,所以要提高性能,就只能提高计算机配置,堆硬件,没有办法中的办法。但是Nosql就不一样了,它是横向的,最重要的是它是分布式的,分布式拓展起来就容易些了。

⑤数据查询:

关系型数据库表里的主键Id相当于非关系型里的存储id。关系型采用结构化sql语句来查询,例如select *from xxx where id=xxx,这是标准用法。非关系型非结构化查询,没有什么标准,就是根据数据结构找数据集,比如键值对我就找key。

⑥事务:

关系型数据库遵循ACID即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)规则。而非关系型则遵循BASE即基本可用(Basically Availble)、软/柔性事务(Soft-state )、最终一致性(Eventual Consistency规则。从原理上来说,其实都有一致性,支持事务。但是关系型对事务的支持更好,更易于回滚。非关系型因为基于节点的分布式系统,实际过程中很难全部满足,对事务的支持没有关系型那么高。

⑦性能:

关系型数据库为了维护数据的逻辑性和一致性付出了巨大的代价,读写性能较差,无法处理面对高并发读写,尤其是海量数据时效率非常低。非关系型由于存储格式(key-value)和存储介质(内存),读写速度非常快。

以上7点,我们可以看出来,关系型和非关系型是各有各的好,我在处理复杂业务时,非常需要数据的逻辑性和一致性,才能给用户展现有逻辑的数据,同时也便于维护。但是我面对高并发海量数据时,关系型数据库又没办法满足我的要求,所以现在一般都是使用mysql+redis这样的组合选型。数据存储在mysql中,将需要用到的高并发业务数据存在redis中,你要高速读写的业务数据,去找redis,别找mysql。同时我又将大量的基础数据,有条理有逻辑地存在mysql中供使用。让开发人员根据自己需求的数据类别,自己选择去redis或者mysql,亦或是mysql+redis去操作。

这其实是我们在面对很多选型时的思路,1和2各有好处,也各有缺点,那最好用最简单的方法,就是设计一下架构,我把1和2加起来组合用,充分发挥各自的优点。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值