Redis技法篇 | 2. Redis的概述

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技法篇 | 2. 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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!