不会吧不会吧,现在还有人面试因为Redis而惨败吗,赶紧过来学习!

89 阅读5分钟

前言

是数据结构而非类型

很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大的歧义。redis里存的都是二进制数据,其实就是字节数组(byte[]),这些字节数据是没有数据类型的,只有把它们按照合理的格式解码后,可以变成一个字符串,整数或对象,此时才具有数据类型。

这一点必须要记住。所以任何东西只要能转化成字节数组(byte[])的,都可以存到redis里。管你是字符串、数字、对象、图片、声音、视频、还是文件,只要变成byte数组。

因此redis里的String指的并不是字符串,它其实表示的是一种最简单的数据结构,即一个key只能对应一个value。这里的key和value都是byte数组,只不过key一般是由一个字符串转换成的byte数组,value则根据实际需要而定。

在特定情况下,对value也会有一些要求,比如要进行自增或自减操作,那value对应的byte数组必须要能被解码成一个数字才行,否则会报错。

那么List这种数据结构,其实表示一个key可以对应多个value,且value之间是有先后顺序的,value值可以重复。

Set这种数据结构,表示一个key可以对应多个value,且value之间是没有先后顺序的,value值也不可以重复。

Hash这种数据结构,表示一个key可以对应多个key-value对,此时这些key-value对之间的先后顺序一般意义不大,这是一个按照名称语义来访问的数据结构,而非位置语义。

Sorted Set这种数据结构,表示一个key可以对应多个value,value之间是有大小排序的,value值不可以重复。每个value都和一个浮点数相关联,该浮点数叫score。元素排序规则是:先按score排序,再按value排序。

相信现在你对这5种数据结构有了更清晰的认识,那它们的对应命令对你来说就是小case了。

开始

首先,让我们来看看最近关于Redis的面试题目都有哪些?

  1. Redis支持哪几种数据类型?
  2. Redis主要有哪些功能?
  3. Redis是单进程单线程的?
  4. Redis为什么是单线程的?
  5. 使用Redis的优势?
  6. Redis相比memcached有哪些优势?
  7. Redis有哪几种数据淘汰策略?
  8. Redis集群方案应该怎么做?都有哪些方案?
  9. Redis提供了哪几种持久化方式?
  10. 如何选择合适的持久化方式?
  11. Redis常见性能问题和解决方案?
  12. Redis支持的Java客户端都有哪些?官方推荐用哪个?
  13. Redis哈希槽的概念?
  14. Redis集群最大节点个数是多少?
  15. Redis集群的主从复制模型是怎样的?
  16. Redis集群会有写操作丢失吗?为什么?
  17. Redis集群之间是如何复制的?
  18. Redis如何做内存优化?
  19. Redis回收进程如何工作的?
  20. Redis回收使用的是什么算法?
  21. Redis有哪些适合的场景?

看到以上redis系列面试题目你怕了吗?假设面试时问到了以上问题你是否能用实力征服你的面试官呢?或许大部分码友都觉得完全没问题,少部分码友还是觉得有点难度的。

那么,觉得有难度的码友也不要慌,今天小编写这篇文章就是为了帮助那些少部分码友,让码友们都不会跟小编一样“老来回忆满悲伤~”

下面开始分享小编收集的一份关于Redis的实战、文档,希望码友们学习完这份Redis实战文档之后做到面试时对答如流,将面试官按在地上反复摩擦!!

《Redis实战》文档详细介绍

本文档将对Redis的使用方法进行说明。Redis是一个内存数据库(或者说内存数据结构)服务器,最初由Salvatore Sanfilippo创建,现在是一个开源软件。

内容编排

本文档总共为3个部分**【+jcc4261获取】**:第一部分对Redis进行了基本介绍,并展示了一些Redis的使用示例;第二部分对Redis的多个命令进行了详细的介绍,之后还介绍了Redis的管理操作以及使用Redis构建更复杂的应用程序员的方法;最后,第三部分介绍了如何通过内存优化、水平分片以及Lua脚本这3种技术来扩展Redis。

(第一部分入门)

第一章:初识Redis

第二章:使用Redis构建Web应用

(第二部分核心概念)

第三章:Redis命令

第四章:数据安全与性能保障

第五章:使用Redis构建支持程序

第六章:使用Redis构建应用程序员组件

第七章:基于搜索的应用程序

第八章:构建简单的社交网站

(第三部分进阶内容)

第九章:降低内存占用

第十章:扩展Redis

第十一章:Redis的Lua脚本编程

当你读完此文档时那么恭喜你,你对Redis已经有了一个系统全面的认知了!面试时再遇上Redis相关的问题你就不会再像小编以前一样,大脑一片空白了。接下来的附录将介绍在3个主流平台上安装Redis的方法,以及各种有用的软件、函数和文档的参考信息。

附录A:快速安装指南