博客
关于我
如何访问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源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
    查看>>
    php漏洞tips
    查看>>
    php版Zencoding之 phpstorm
    查看>>
    PHP版本升级5.4手记
    查看>>
    php版本微信公众号开发
    查看>>
    php生成二维码到图片上
    查看>>
    php生成二维码并下载图片(适应于框架)
    查看>>
    PHP线程安全和非线程安全
    查看>>
    php缃戠珯,www.wfzwz.com
    查看>>
    php编写TCP服务端和客户端程序
    查看>>
    php编码规范
    查看>>
    PHP编码规范-PSR1、psr2 /psr3 psr4
    查看>>
    PHP编程效率的20个要点
    查看>>
    PHP网页缓存技术优点及代码
    查看>>
    php自定义函数: 文件大小转换成智能形式
    查看>>
    php英语单词,php常用英语单词,快速学习php编程英语(6)
    查看>>
    R3.4.0安装包时报错“需要TRUE/FALSE值的地方不可以用缺少值”,需升级到R3.5.0
    查看>>
    PHP获取curl传输进度
    查看>>
    PHP获取IP所在地区(转)
    查看>>
    PHP获取IP的方法对比
    查看>>