1. 引言
前一节我们学会了如何在Linux服务器上安装并启动Redis,那么这一节我们就要来学习一下Redis是什么或者说能用来干啥。
之前我们聊到过Redis是一种key-value存储系统,顾名思义,Redis就是一个存储了大量键值对的数据库。是不是觉得它比MySQL简单多了,事实上的确如此!接下来我们将详细聊聊Redis的数据类型和应用场景。
2. Redis为什么万众瞩目?
专业的说:Redis是一种「使用ANSI C语言编写、基于内存、可持久化」的「日志型、Key-Value」数据库。无需多言,相信你也发现了它最大的特点:性能优越(快)!
Redis作为一种NoSQL(非关系型数据库)其实和MySQL没啥可比性,因为两个数据库定位完全就不一样,MySQL作为一种关系型数据库主要用于存放持久化数据(数据存在磁盘),Redis则是一种非关系型数据库最大的作用是缓存数据(将数据存储在内存中,数据的读取速度快,效率高)。「他们二者其实是相辅相成的关系,虽然Redis性能好,但是内存空间是有限的,而且Redis也干不了关系型数据库的活!」
NoSQL泛指非关系型数据库,这个大家族内部不仅仅只有Redis,还有很多其他类型的数据库。NoSQL不遵循SQL标准也不支持ACID,它跟关系型数据库走了不同的道路,或者说它的出现是为了解决关系型数据库的弊端。随着Web2.0时代的到来和智能移动设备的普及,所有互联网平台都面临了巨大的性能挑战,NoSQL的出现就是为了解决这些性能问题。
NoSQL有很多,常见的有键值型数据库(Redis、Memcached)、文档型数据库(MongDB)、图形数据库(Neo4j)、列型数据库(HBase)。这些数据库都是耳熟能详的,但是为什么Redis能这么突出嘞?
「Redis的优势:」
-
速度快,因为数据存在内存中 -
支持丰富数据类型,支持string,list,set,sorted set,hash -
支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 -
丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
「Redis相比于Memcached有什么优势:」
-
memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 -
redis的速度比memcached快很多 -
redis可以持久化其数据
3. Redis的应用场景
刚刚我们秀了一下Redis的肌肉,那么它到底应用在哪些场景嘞?在我看来Redis主要干两件事:
-
配合关系型数据库做高速缓存 -
依靠多样的数据结构存储持久化数据(Redis是有持久化能力的哦!)
首先我们来说一说第一个应用场景,我们知道数据有冷热之别,热数据就比如微博头条、冷数据就好比一个普通人的微博。很显然前者的访问量比后者大得多,但是如果我们不加区别的去存储,那么就得去MySQL数据库里查微博头条的数据。但是MySQL的数据在磁盘里,访问磁盘很浪费时间,也很容易拖垮服务器,这个时候我们就需要将热点数据存到Redis中,如果用户要查看微博头条那么直接去Redis中查即可。缓存架构在查询服务与数据库之间,是不是有缓存那味了!
第二个应用场景就太丰富了,Redis有着多样的数据结构,这赋予了它更强的能力。由于我们还没细讲Redis的数据结构,我先列一下例子:
「应用示例」 | 「Redis数据结构」 |
---|---|
最新的N个数据 | 通过List实现按自然时间排序的数据 |
排行榜 | 利用Zset有序集合 |
时效性数据比如手机验证码 | Expire过期 |
秒杀场景下的库存计数器 | 原子性 自增方法INCR DECR |
去除重复数据 | 利用Set集合 |
发布订阅消息系统 | pub/sub模式 |
构建队列 | 利用list集合 |
4. Redis的数据类型
其实绝大部分的Redis命令操作都是围绕着键值对展开的,「Redis中的键都是字符串类型的,但是键所对应的值确有很多类型。」Redis常用的有五大数据类型:「字符串(String)、列表(List)、集合(Set)、哈希(Hash)、有序集合(ZSet)」。后来Redis又引入了「Bitmaps、Geospatial、HyperLogLog」这三种新的数据类型。
我们先提一嘴这些数据类型,后面还是要围绕这些数据类型和它们的命令操作展开学习的!这一节主要是给大家普及一下Redis,到目前为止其实Redis扫盲已经完成了,接下来的章节将会带大家玩转Redis。
原文始发于微信公众号(Java之禅):Redis技法篇 | 2. Redis的概述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/161370.html