前言
是数据结构而非类型
很多文章都会说,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的面试题目都有哪些?
- Redis支持哪几种数据类型?
- Redis主要有哪些功能?
- Redis是单进程单线程的?
- Redis为什么是单线程的?
- 使用Redis的优势?
- Redis相比memcached有哪些优势?
- Redis有哪几种数据淘汰策略?
- Redis集群方案应该怎么做?都有哪些方案?
- Redis提供了哪几种持久化方式?
- 如何选择合适的持久化方式?
- Redis常见性能问题和解决方案?
- Redis支持的Java客户端都有哪些?官方推荐用哪个?
- Redis哈希槽的概念?
- Redis集群最大节点个数是多少?
- Redis集群的主从复制模型是怎样的?
- Redis集群会有写操作丢失吗?为什么?
- Redis集群之间是如何复制的?
- Redis如何做内存优化?
- Redis回收进程如何工作的?
- Redis回收使用的是什么算法?
- 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:快速安装指南