会会大厂面试官三-----Redis【5大基本数据类型应用场景】考核趋势

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 会会大厂面试官三-----Redis【5大基本数据类型应用场景】考核趋势

一、redis面试复盘


1.redis6.0.8【linux】

2.redis的5大数据类型的落地应用

3.你知道分布式锁吗?有哪些实现方案?删除key又什么问题?

4.谈谈你对redis缓存国企淘汰策略?

5.redis的LRU算法简介?

6.生产上redis内存配置多大?快满了怎么办?


1.1 查看redis版本,五大数据类型


1.redis-server -V

2.redis客户端info

String list hash set zset

bitmap

HyperLogLog

GEO

Stream


1.1.1 Redis-String


image.png


EX:key在多少秒之后过期

PX:key在多少毫秒之后过期

NX:当key不存在的时候,才创建爱你key,效果等同于setnx

XX:当key存在的时候,覆盖key


20210203135255784.png

1.1.2 Redis-Hash类型

20210203143503460.png


对应java中的数据结构为Map<String,map<k,v>>


20210203143658791.png


1.1.3 Redis-List类型


127.0.0.1:6379>lpush list01 1 2 3 4 5 6 
127.0.0.1:6379>lrange list01 0 -1


1.1.4 Redis-Set类型


image.png


127.0.0.1:6379>sadd set  1 1 1 2 3 4 5
127.0.0.1:6379>smembers set1 
127.0.0.1:6379>spop set1 3  # 弹出3个


1.1.5 Redis-Zset


20210203155048540.png

zadd zset1 100 movie1 20 movie2


1.2 数据类型用在哪里,应用场景是什么?


商品编号、订单号采用INCR命令生成。【INCR数值增减】


20210203143026748.png


早期的购物车。【Hash】


新增商品:hset shopcar:uid 1024 3344
 新增商品:hset shopcar:uid 1024 334477 1
 增加商品数量:hincrby shopcar:uid 1024 334477 1
 商品总数:hlen shopcar:uid 1024
 全部选择:hgetall shopcar:uid 1024


20210203145150681.png


微信公众号订阅栏目。【List】

# 作者们一旦发布新文章,就会安装进自己的List  
127.0.0.1:6379>lpush likeauthor:uid1024 11 22
# 查看自己喜欢的全部文章,遍历文章
127.0.0.1:6379>lrange likeauthor:uid1024 0 -1

20210203150938551.png


微信抽奖小程序。【Set】

微信朋友圈点赞

微博好友关注社交关系

QQ内推可能认识的人

20210203152513552.png

# 微信抽奖
# 3个用户点击立即参与choujiang
127.0.0.1:6379>sadd shoujiang:1010  1 2 3 
# 查看多少人参与抽奖
127.0.0.1:6379>scard choujiang:1010
# 选出中奖的人 并删除
127.0.0.1:6379>smembers set1 
127.0.0.1:6379>spop set1 3  # 弹出3个作为中奖


20210203153351893.png

# 朋友圈点赞就加到set集合里
127.0.0.1:6379>sadd pub:msgID 点赞用户ID1 点赞用户ID2
# 取消点赞
127.0.0.1:6379>srem pub:msgID 点赞用户ID
# 展现所有点赞的ID
127.0.0.1:6379>smembers pub:msgID
# 点赞数统计
127.0.0.1:6379>scard pub:msgID
# 判断某个朋友是否点赞过
127.0.0.1:6379>sismember pub:msgID 用户ID

20210203153922286.png

# 微博共同关注,社交关系
127.0.0.1:6379>sadd s1 1 2 3 4 5 
127.0.0.1:6379>sadd s1 1 2 3 4 5 6 7 8 9 
# 取交集
127.0.0.1:6379>sinter s1 s2

20210203154736321.png

# QQ可能认识的人【电商直播推荐,带货 比较合适也】
127.0.0.1:6379>sadd s1 1 2 3 4 5 
127.0.0.1:6379>sadd s1 1 2 3 4 5 6 7 8 9 
# 取差集
127.0.0.1:6379>sdiff s1 s2

商品销售排行。【Sort Zset】

抖音热搜。

例:key 为goods:sellsort,分数为销售数量

# 商品编号1001的销量为9,1002销量为15
127.0.0.1:6379>zadd goods:sellsort 9 1001 15 1002 
# 又有一个顾客买了2件1001
127.0.0.1:6379>zincrby goods:sellsort 2 1001
# 求商品销量前10名
127.0.0.1:6379>zrange goods:sellsort 0 10 withscores
结果:
1) "1001"
2) "11"
3) "1002"
4) "15"

20210203160035227.png

# 点击视频
127.0.0.1:6379>zincrby hotvcr:20200919 1 八佰
127.0.0.1:6379>zincrby hotvcr:20200919 1 八佰 2 花木兰
# 展示当日排行前10
127.0.0.1:6379>zrange hotvrc:20200919 0 9 withscores


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
存储 NoSQL Java
可能是最漂亮的Redis面试基础详解
我是南哥,相信对你通关面试、拿下Offer有所帮助。敲黑板:本文总结了Redis基础最常见的面试题!包含了Redis五大基本数据类型、Redis内存回收策略、Redis持久化等。相信大部分Redis初学者都会忽略掉一个重要的知识点,Redis其实是单线程模型。我们按直觉来看应该是多线程比单线程更快、处理能力更强才对,比如单线程一次只可以做一件事情,而多线程却可以同时做十件事情。但Redis却可以做到每秒万级别的处理能力,主要是基于以下原因:(1)Redis是基于内存操作的,Redis所有的数据库状态都保存在
可能是最漂亮的Redis面试基础详解
|
19天前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
29 1
|
22天前
|
NoSQL Java API
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
在40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试一线互联网企业时遇到了关于Redis分布式锁过期及自动续期的问题。尼恩对此进行了系统化的梳理,介绍了两种核心解决方案:一是通过增加版本号实现乐观锁,二是利用watch dog自动续期机制。后者通过后台线程定期检查锁的状态并在必要时延长锁的过期时间,确保锁不会因超时而意外释放。尼恩还分享了详细的代码实现和原理分析,帮助读者深入理解并掌握这些技术点,以便在面试中自信应对相关问题。更多技术细节和面试准备资料可在尼恩的技术文章和《尼恩Java面试宝典》中获取。
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
|
29天前
|
NoSQL 算法 Redis
Redis面试篇
Redis面试篇
34 5
|
29天前
|
缓存 NoSQL Java
Java中redis面试题
Java中redis面试题
33 1
|
9天前
|
存储 NoSQL Redis
Redis常见面试题:ZSet底层数据结构,SDS、压缩列表ZipList、跳表SkipList
String类型底层数据结构,List类型全面解析,ZSet底层数据结构;简单动态字符串SDS、压缩列表ZipList、哈希表、跳表SkipList、整数数组IntSet
|
1月前
|
NoSQL Redis
redis 的 key 过期策略是怎么实现的(经典面试题)超级通俗易懂的解释!
本文解释了Redis实现key过期策略的方式,包括定期删除和惰性删除两种机制,并提到了Redis的内存淘汰策略作为补充,以确保过期的key能够被及时删除。
49 1
|
2月前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
44 2
|
2月前
|
缓存 监控 NoSQL
阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
大家好,我是 V 哥。粉丝小 A 面试阿里时被问到 Redis 的内存淘汰策略问题,特此整理了一份详细笔记供参考。Redis 的内存淘汰策略决定了在内存达到上限时如何移除数据。希望这份笔记对你有所帮助!欢迎关注“威哥爱编程”,一起学习与成长。
|
27天前
|
缓存 NoSQL 算法
面试题:Redis如何实现分布式锁!
面试题:Redis如何实现分布式锁!