我凭借这份PDF的复习思路,Redis从入门到精通,至少要看看这篇

本文详细介绍了Redis中的数据结构,包括String、Hash、List、Set和Sorted Set的使用场景与特点。还讨论了如何在海量Key中查找特定前缀的Key,以及如何通过Redis实现分布式锁和异步队列。此外,深入解析了Redis的持久化机制,如RDB和AOF的优缺点。最后,提到了面试和薪资谈判的建议。
摘要由CSDN通过智能技术生成

String

最基本的数据类型,其值最大可存储 512M,二进制安全(Redis 的 String 可以包含任何二进制数据,包含 jpg 对象等)。

Redis从入门到精通,至少要看看这篇

注:如果重复写入 key 相同的键值对,后写入的会将之前写入的覆盖。

Hash

String 元素组成的字典,适用于存储对象。

Redis从入门到精通,至少要看看这篇

List

列表,按照 String 元素插入顺序排序。其顺序为后进先出。由于其具有栈的特性,所以可以实现如“最新消息排行榜”这类的功能。

Redis从入门到精通,至少要看看这篇

Set

String 元素组成的无序集合,通过哈希表实现(增删改查时间复杂度为 O(1)),不允许重复。

Redis从入门到精通,至少要看看这篇

另外,当我们使用 Smembers 遍历 Set 中的元素时,其顺序也是不确定的,是通过 Hash 运算过后的结果。

Redis 还对集合提供了求交集、并集、差集等操作,可以实现如同共同关注,共同好友等功能。

Sorted Set

通过分数来为集合中的成员进行从小到大的排序。

Redis从入门到精通,至少要看看这篇

更高级的 Redis 类型

用于计数的 HyperLogLog、用于支持存储地理位置信息的 Geo。

从海量 Key 里查询出某一个固定前缀的 Key

假设 Redis 中有十亿条 Key,如何从这么多 Key 中找到固定前缀的 Key?

方法 1:使用 Keys [pattern]:查找所有符合给定模式 Pattern 的 Key

使用 Keys [pattern] 指令可以找到所有符合 Pattern 条件的 Key,但是 Keys 会一次性返回所有符合条件的 Key,所以会造成 Redis 的卡顿。

假设 Redis 此时正在生产环境下,使用该命令就会造成隐患,另外如果一次性返回所有 Key,对内存的消耗在某些条件下也是巨大的。

例:


keys test\* //返回所有以test为前缀的key 



方法 2:使用 SCAN cursor [MATCH pattern] [COUNT count]

注:

  • cursor:游标

  • MATCH pattern:查询 Key 的条件

  • Count:返回的条数

SCAN 是一个基于游标的迭代器,需要基于上一次的游标延续之前的迭代过程。

SCAN 以 0 作为游标,开始一次新的迭代,直到命令返回游标 0 完成一次遍历。

此命令并不保证每次执行都返回某个给定数量的元素,甚至会返回 0 个元素,但只要游标不是 0,程序都不会认为 SCAN 命令结束,但是返回的元素数量大概率符合 Count 参数。另外,SCAN 支持模糊查询。

例:

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值