看看你到底有没有全面的了解redis有哪些功能,一般怎么来用,啥场景用什么,就怕你别就会最简单的kv操作

news/2025/3/23 9:20:27/

简介: 1 面试题 redis都有哪些数据类型?分别在哪些场景下使用比较合适? 2 考点分析 除非是感觉看你简历,就是工作3年以内的比较初级的一个同学,可能对技术没有很深入的研究过,我才会问这类问题,在宝贵的面试时间里,我实在是不想多问 其实问这个问题,主要就俩原因 看看你到底有没有全面的了解redis有哪些功能,一般怎么来用,啥场景用什么,就怕你别就会最简单的kv操作 看看你在实际项目里都怎么玩儿过redis 要是你回答的不好,没说出几种数据类型,也没说什么场景,你完了,面试官对你印象肯定不好,觉得你平时就是做个简单的set和get。

1 面试题

redis都有哪些数据类型?分别在哪些场景下使用比较合适?

2 考点分析

除非是感觉看你简历,就是工作3年以内的比较初级的一个同学,可能对技术没有很深入的研究过,我才会问这类问题,在宝贵的面试时间里,我实在是不想多问

其实问这个问题,主要就俩原因

  • 看看你到底有没有全面的了解redis有哪些功能,一般怎么来用,啥场景用什么,就怕你别就会最简单的kv操作
  • 看看你在实际项目里都怎么玩儿过redis

要是你回答的不好,没说出几种数据类型,也没说什么场景,你完了,面试官对你印象肯定不好,觉得你平时就是做个简单的set和get。

3 详解

3.1 string

这是最基本的类型了,没啥可说的,就是普通的set和get,做简单的kv缓存

3.2 hash

这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某个字段。

key=150value={“id”: 150,“name”: “zhangsan”,“age”: 20
}

hash类的数据结构,主要是用来存放一些对象,把一些简单的对象给缓存起来,后续操作的时候,你可以直接仅仅修改这个对象中的某个字段的值

value={“id”: 150,“name”: “zhangsan”,“age”: 21
}

3.3 list

有序列表,这个是可以玩儿出很多花样的

微博,某个大v的粉丝,就可以以list的格式放在redis里去缓存

key=某大vvalue=[zhangsan, lisi, wangwu]

比如可以通过list存储一些列表型的数据结构,类似粉丝列表了、文章的评论列表之类的东西

比如可以通过lrange命令,就是从某个元素开始读取多少个元素,可以基于list实现分页查询,这个很棒的一个功能,基于redis实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西,性能高,就一页一页走

比如可以搞个简单的消息队列,从list头怼进去,从list尾巴那里弄出来

3.4 set

无序集合,自动去重

直接基于set将系统里需要去重的数据扔进去,自动就给去重了,如果你需要对一些数据进行快速的全局去重,你当然也可以基于jvm内存里的HashSet进行去重,但是如果你的某个系统部署在多台机器上呢?

得基于redis进行全局的set去重

可以基于set玩儿交集、并集、差集的操作,比如交集吧,可以把两个人的粉丝列表整一个交集,看看俩人的共同好友是谁?对吧

把两个大v的粉丝都放在两个set中,对两个set做交集

3.5 sorted set

排序的set,去重但是可以排序,写进去的时候给一个分数,自动根据分数排序,这个可以玩儿很多的花样,最大的特点是有个分数可以自定义排序规则

比如说你要是想根据时间对数据排序,那么可以写入进去的时候用某个时间作为分数,人家自动给你按照时间排序了

排行榜:将每个用户以及其对应的什么分数写入进去,zadd board score username,接着zrevrange board 0 99,就可以获取排名前100的用户;zrank board username,可以看到用户在排行榜里的排名

zadd board 85 zhangsan
zadd board 72 wangwu
zadd board 96 lisi
zadd board 62 zhaoliu96 lisi
85 zhangsan
72 wangwu
62 zhaoliuzrevrange board 0 3

获取排名前3的用户

96 lisi
85 zhangsan
72 wangwuzrank board zhaoliu4

  面试一点通(www.msedt.com)


http://www.ppmy.cn/news/861789.html

相关文章

110kV级电力变压器系列技术参数:

110kV级电力变压器系列技术参数: S10系列三绕组无励磁调压电力变压器产品技术参数 S10系列双绕组无励磁调压电力变压器产品技术参数 S10系列三绕组有载调压电力变压器产品技术参数 SZ10系列双绕组有载调压电力变压器产品技术参数 S10系列三绕组无励磁调压电力变压…

C#链接阿里云KVStore

KVStore的简单介绍 阿里云KVStore兼容Redis。因为KVStore就相当于Redis的服务器端,我们代码只是当作客户端,链接上服务器端就行了,阿里云的KVStore详情文档见,https://docs.aliyun.com/#/pub/kvstore/key-value-store/kvstore-int…

ABB HIDRY 72干式变压器

干式变压器一般用于额定功率与电压不高于15MVA与36KV的配电与工业领域。 ABB现在提供52KV-72.5KV电压等级的干式变压器,额定功率达63MVA。有载调压开关也适用,ABB干式变压器的输电特征是非常安全,对环境友好,尤其在人口密集的城市…

高性能kv存储设计 之 cacheline对齐

最近在设计高读性能的kv存储,为了尽可能保证cache的命中,应尽可能将"同时读取"的数据放到一起,以此来保证数据大概率同时出现在高速cache中。当前大部分计算机的cacheline size为64字节对齐,即当读取地址0x403140&#…

安科瑞企业微电网能效管理平台在某食品加工厂35kV变电站应用分析

来源:安科瑞电气网 李亚俊 摘要:35kV变电站的日常运维需要大量的人力物力,通常35kV变电站会设有变电站综自自动化系统与低压电力监控系统,多套系统应用造成运维人员的负担,而Acrel-EMS企业微电网能效管理平台集测量、…

(新西达30A电调+1400KV电机)无人机(航模)电调解索和驱动方法

无人机(航模)电调解索和驱动方法(新西达30A电调1400KV电机) 经过一天的时间才完成电调的解锁和驱动,在网上一直看到别人说PWM频率需要50HZ,其实不然,频率并不固定大家大可在50HZ~500HZ,甚至到1…

安科瑞35kV自动化系统在安徽怀远人民医院35kV配电工程研究应用

安科瑞 须静燕 摘 要:现如今,各领域不断的进步,促进电力电网的快速发展,人们对电力系统运行的安全性以及稳定性的要求越来越高,而微机保护装置能够对电力系统的运行起到有效的保护作用。本文介绍的微机保护装置&…

10KV配电工程电力监控系统的设计及应用

安科瑞 顾锡君 项目概述: 为满足新建松园四号学生公寓及原有学生公寓安装空调的用电需求,学校决定在竹园三号学生公寓东侧新建一座变配电室,设计装机容量8000KVA,配电室建筑面积841平方米,二层框架结构,第…