[准备面试|Redis]- 进阶知识

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

前言

本系列主要从基础知识,而后进阶,再逐步深入 Redis 的原理分析,以保证对 Redis 的学习深入浅出,学以致远并输出自己对 Redis 学习和了解的成果。本系列将划分四个部分:

事务

Exec命令

Redis 事务是一组命令的集合。一个事务中的命令要么都执行,要么都不执行。这也是 Redis 特性之一——原子性。

redis> Multi
redis> SET key1 Value
redis> SET key2 value2 
redis> Exec
复制代码
  • Multi 开启事务
  • Exec 执行事务

操作命令发送给 redis 后,将执行 Exec 命令就会将等待执行的事务队列中的所有命令按照发送顺序依次执行。Exec 命令的返回值就是所有操作命令返回值组成列表,顺序和发送时一致。

所以,如果执行一半出现错误,那么执行 Exec 命令后就会直接返回错误,事务中的所有命令都不会执行

Watch命令

场景:一个事务中的命令存在某命令需要依赖于其他命令的值。

Watch 命令可以监控一个或多个键,一旦其中一个键被修改或删除,之后的事务就不会执行。

如果不需要监控则可以取消监控 UnWatch。

过期时间

  • EXPIRE 命令的使用方法为 EXPIRE key seconds,其中seconds参数表示键的过期时间,单位是秒。
  • TTL 命令返回键的剩余时间,使用方法 TTL Key。(2.8版本)若键不存在将返回 -2;若键永不过期将返回 -1;(2.6版本) 键不存在和不过期都只返回-1
  • PERSIST 命令清除键的过期时间,即将其设置为永久。当然如果重新设置值时也可以设置为永久,如 set key value ,仅针对字符串类型。

排序

当遇到需要排序的场景,可能会想到有序集合类型,但有序集合常用场景时大数据排序,无需获取全部值,比如游戏排名榜单。

使用 Sort 命令可以解决对列表类型、集合类型和有序集合类型键进行排序。

SORT Key
复制代码

在开发中使用SORT命令时,需要注意以下几点。 (1)尽可能减少待排序键中的元素个数(使n尽可能小)。 (2)使用LIMIT参数只获取需要的数据(使m尽可能小)。 (3)如果要排序的数据数量较大,尽可能使用STORE参数将结果缓存。

猜你喜欢

转载自juejin.im/post/7131018844260270088