博客
关于我
如何访问Redis中的海量数据?Java面试题及解析
阅读量:319 次
发布时间:2019-03-03

本文共 1405 字,大约阅读时间需要 4 分钟。

Redis面试笔记:从实习到面试再到 Redis 实现

说起来,面试的起点其实是一年前。这时候我还在公司工作,收到蚂蚁集团的面试电话。虽然那次面试并没有成功,但这也让我有机会深入了解了一些关于 Redis 的知识。现在我来整理一下自己对 Redis 的理解,希望对后续的准备有所帮助。

Redis 常用数据类型

Redis 提供了五种常用的数据类型:String、Hash、List、Set 和 Sorted set。这几种数据类型在实际应用中有着广泛的使用场景。

String

String 是最基本的数据类型,用于存储字符串值。它支持丰富的操作,可以用来存储文本、用户信息等。

Hash

Hash 数据类型是一种键值对的集合,适用于存储多对一的数据结构。例如,可以用来存储用户的个人信息(如 age、email 等)。

List

List 是一个有序的列表,支持插入、删除、取首尾等操作。它常用于实现队列和排行榜功能。

Set

Set 是一个无序的集合,存储唯一的元素。它适用于去重功能,比如在用户系统中存储用户 ID,避免重复注册。

Sorted set

Sorted set 是一个有序的集合,既支持插入、删除操作,还可以根据键值对存储排序信息。它常用于实现热门商品排行榜。


Redis 的使用场景

Redis 的灵活性和高性能使其在多个领域有广泛应用。以下是一些典型场景:

  • 计数(Counting)

    • 用于记录用户访问次数、点赞数、评论数等。
  • 展示 Top 列表

    • 最近访问、点击率最高、活跃度最高等等条件的数据可以通过 Redis 快速获取。
  • 用户最近访问记录

    • Redis 列数据类型非常适合用来记录用户的访问路径。
  • 队列处理

    • 使用 Redis 列的 lpush 和 lpop 方法来实现队列的写入和消费。
  • Lua 脚本扩展

    • Redis 提供 Lua 脚本支持,可以通过多个命令组合实现事务处理,扩展了更多应用场景。
  • 主从复制

    • Redis 提供了强大的主从复制功能,适合用来实现分布式缓存。

  • Redis 的高性能架构设计

    1. 架构设计

    Redis 是一个单点系统,如果要实现分布式,需要自行构建分布式架构。

    2. 分布式实现

    通过一致性哈希实现 Redis 结点的分布。具体实现方式是用 MurmurHash 计算 hash 值,通过 Java 的 TreeMap 模拟环状结构,实现均匀分布。

    3. 客户端选择

    在客户端模块中,主要修改了 Jedis 的分区模块,使其支持基于 BufferKey 的分区。通过 ShardInfo 初始化不同的 Redis 连接池,根据 key/value 的构造方法,创建对应的 Jedis 连接。

    4. 模块说明

    • 脏数据处理模块:处理失败的缓存操作。
    • 屏蔽监控模块:对 Jedis 操作的异常监控,切除异常 Redis 结点。
    • 分布式模块:通过 HornetQ 实现 Redis 结点的切除和新增。

    最后

    总的来说,Redis 的优势在于其高性能和灵活性。面试官问的那些知识点其实不多,但如果复习不够到位,掌握不够熟练,面试也会感到吃力。希望这份笔记能对你有所帮助。

    如果需要更多学习资料,可以参考以下资源(部分资源免费):

    • 《 Redis 实战与优化 》
    • 《 Redis 高效应用实践 》
    • 《分布式系统设计与实现》

    如果需要这些资料,可以联系我获取完整链接。

    转载地址:http://sjbl.baihongyu.com/

    你可能感兴趣的文章
    php 浮点型计算精度问题
    查看>>
    php 特定时间段统计,jpgraph某个时间段的数据统计
    查看>>
    php 生成csv mac下乱码
    查看>>
    php 生成证书 签名及验签
    查看>>
    php 的rsa加密与解密
    查看>>
    PHP 的标准输入与输出
    查看>>
    php 笔记 (早前的,很乱)
    查看>>
    PHP 第一天
    查看>>
    Redis使用量暴增,快速定位有哪些大key在作怪
    查看>>
    php 结课作业答案,北语201803考试批次《PHP》(结课作业)1.pdf
    查看>>
    PHP 统计数据功能 有感
    查看>>
    SpringBoot处理JSON数据
    查看>>
    Redis使用基本套路
    查看>>
    php 解决项目中多个自动加载冲突问题
    查看>>
    PHP 设置调试工具XDebug PHPStorm IDE
    查看>>
    php 身份证号检测
    查看>>
    PHP 输入输出流合集
    查看>>
    PHP 过滤器(Filter)
    查看>>
    php 运算符and or && || 的详解
    查看>>
    php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
    查看>>