我们已经学过了很多命令,但是有些通用命令是和具体的数据类型或者某些具体的功能无关的。它们主要是为一些通用功能提供的一些命令,就像是我们在业务开发的时候经常会写的那些通用函数一样。这些命令其实都比较简单,但是大部分同学可能还会有很多命令完全没用过。就像我一样,没有系统学习之前,我也真的只知道 GET 和 SET 。
对于一个传统关系型数据库系统来说,事务是非常重要的一个组成部分。但是,在 NoSQL 相关的数据库中,为了效率以及实现形式的不同,事务远达不到真正的关系型数据库中的那种 ACID 的控制级别。今天,我们就来学习一下 Redis 中的事务操作。另外,我们还会简单地看一下在 Redis 中如何去执行 Lua 脚本程序。
标题说的可能不太清楚,ACL 是权限控制,GEO 是地理位置信息。是不是感觉高大上又很好玩?ACL 是新东西,Redis6 之后才出来的,而 GEO 相关的功能就比较早了,Redis3.2 版本的时候就已经有了。那么我们就一个一个的来看看吧。
上回我们已经学习过了客户端的一些操作命令,今天我们就来继续学习服务器端的一些操作命令。这些命令其实平常用得比较多的也就那么几个,通常就是看一看服务器的一些相关信息。
今天我们学习的内容是一些普通的客户端操作,这些内容有的可能你天天都会用到,而有的可能根本都没听说过。好吧,说得就是我,没有系统的学习之前真的很多命令都不清楚,甚至完全就是不知道的状态。当然,无知者无畏,这个无畏就是要面对学习无所畏惧。
又来一个不好理解的东西,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 形式的缓存也是我们日常使用最多的一种缓存形式,所以大家对于它的操作应该还是比较熟悉的,我们就简单的根据官方文档来学习巩固一下。
Laravel Swoole 设计模式 算法 数据结构 PHP基础 压缩 MySQLi 缓存 性能 命名空间 信管师 Redis Nginx 迅搜 MQ 消息队列 MySQL PHP 加解密 PDO PHP数据库 时间日期 文件操作 国际化 GD库 图片处理 PHP SPL CURL Composer PHP魔术 PHP框架 ACP 敏捷