今天我们学习的内容是一些普通的客户端操作,这些内容有的可能你天天都会用到,而有的可能根本都没听说过。好吧,说得就是我,没有系统的学习之前真的很多命令都不清楚,甚至完全就是不知道的状态。当然,无知者无畏,这个无畏就是要面对学习无所畏惧。
又来一个不好理解的东西,Stream 类型,而且它是整个 Redis 中对于数据操作最复杂的一种类型。但话又说回来,其实这个东西吧,还是个队列,只不过又是一种换了形式的队列。并且呢,据说是受到很多 Kafka 的影响,我对于 Kafka 仅仅是搭过环境的水平,完全没法用它来进行比较,所以我们的重点还是以理解 Redis 中的 Stream 为主吧。
发布订阅的概念不知道大家有没有接触过,其实呀,简单点理解,就像是我写的这篇文章,发布出来之后大家都看到了,我就是一个发布者(或生产者),而各位看客您呢,那就是订阅者(或消费者)。
继续进行 Redis 基础部分的学习,今天我们学习的是两种另外的数据类型。说是数据类型,但其实它们实际上使用的都是 String 类型做为底层基础,只不过是在存储的时候进行了一些特殊的操作。换句话说,这两种类型并不是真正意义上的“数据类型”,换成“数据操作”可能更合适一些。
通过之前的学习,我们已经了解了 Redis 中五大数据类型相关的一些命令,通过这些命令操作其实也能知道这五种数据类型都能够应用在哪些场景中。但是,今天我们依然要总结一下,为什么呢?因为这五大数据类型是非常常见的面试题呀。
Redis 五大常用数据类型的最后一个了,同时也是最复杂的,那就是我们今天要学习的 Sorted Set ,也可以叫作 有序集合 。同样是集合,但是它相比 Set 多了一个可以设置分数的功能,利用这个功能,就可以为这个集合元素添加一个排序的依据,这也就是有序集合的由来。
继续我们的 Redis 基础学习,学完了 String、List、Hash 之后,就到了另一个非常重要的数据类型,也就是 Set 类型的使用。这个类型吧,其实就是一个不重复的 List ,或者说是一个标准的数学上的 集合 。换句话说,它的值是不能重复的。适合什么场景呢?我们最后再说。
今天我们继续学习基础的数据类型 Hash 。其实从我的理解来看,这个 Hash 类型就可以看做是一个数据对象,也就是只有属性的对象,或者说是 Java 中的贫血模型对象或者 HashMap ,以及我们 PHP 中的对象属性或者键值数组。相信大家也能看出来了,如果是这种纯数据的对象属性保存,用 Hash 非常方便。
在 Redis 中,List 也是非常常用的一个数据类型,它可以看做是我们 PHP 中的数字下标类型的数组,注意,是数字下标的那种最典型的数组格式。重要的是,它可以方便地帮助我们实现队列或者栈的功能,非常强大。同样的,我们还是先来学习一下它的一些基本操作命令。
在 Redis 中,最基础,最简单的当然就是这个 String 数据类型了。简单地说,你就可以把它看成是 PHP 中的变量,或者你用过 Memcached ,那就再熟悉不过了。本身这种 k/v 形式的缓存也是我们日常使用最多的一种缓存形式,所以大家对于它的操作应该还是比较熟悉的,我们就简单的根据官方文档来学习巩固一下。