会会大厂面试官三-----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
目录
相关文章
|
2月前
|
Java
【Java基础面试四】、介绍一下Java的数据类型
这篇文章介绍了Java的数据类型,包括8种基本数据类型(整数、浮点、字符、布尔)和3类引用数据类型(数组、类、接口),并提供了基本数据类型所占内存空间和数据范围的详细信息。
|
19天前
|
存储 缓存 NoSQL
【Java面试题汇总】Redis篇(2023版)
Redis的数据类型、zset底层实现、持久化策略、分布式锁、缓存穿透、击穿、雪崩的区别、双写一致性、主从同步机制、单线程架构、高可用、缓存淘汰策略、Redis事务是否满足ACID、如何排查Redis中的慢查询
【Java面试题汇总】Redis篇(2023版)
|
3天前
|
存储 消息中间件 缓存
深入探析Redis常见数据类型及应用场景
深入探析Redis常见数据类型及应用场景
13 2
|
10天前
|
缓存 监控 NoSQL
阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
大家好,我是 V 哥。粉丝小 A 面试阿里时被问到 Redis 的内存淘汰策略问题,特此整理了一份详细笔记供参考。Redis 的内存淘汰策略决定了在内存达到上限时如何移除数据。希望这份笔记对你有所帮助!欢迎关注“威哥爱编程”,一起学习与成长。
|
2月前
|
Java
【Java基础面试九】、说一说自动装箱、自动拆箱的应用场景
这篇文章介绍了Java中的自动装箱和自动拆箱概念:自动装箱允许将基本类型赋值给对应的包装类对象,而自动拆箱允许将包装类对象赋值给基本类型,从而简化了两者之间的转换过程。
【Java基础面试九】、说一说自动装箱、自动拆箱的应用场景
|
2月前
|
JavaScript
【Vue面试题十九】、Vue常用的修饰符有哪些有什么应用场景?
这篇文章详细介绍了Vue中的修饰符,包括表单修饰符、事件修饰符、鼠标按键修饰符、键值修饰符和`v-bind`修饰符,解释了它们各自的功能和应用场景,并通过代码示例展示了如何在实际开发中使用这些修饰符来简化事件处理和提高代码的可读性及效率。
【Vue面试题十九】、Vue常用的修饰符有哪些有什么应用场景?
|
2月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
2月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
2月前
|
消息中间件 存储 NoSQL
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
本文档介绍了如何使用 Go 语言中的 `go-redis` 库操作 Redis 数据库
redis实战——go-redis的使用与redis基础数据类型的使用场景(一)
|
2月前
|
缓存 NoSQL Redis
redis常见面试题总结(上)
Redis 提升读写性能,减少 MySQL 请求。优点包括:内存存储加速数据获取,支持多样数据结构如哈希和有序集合,事务确保操作原子性,具备队列、主从复制及持久化功能。相较于 Memcache,Redis 数据类型更丰富,支持数据持久化与恢复,单值大小可达 512MB。其单线程设计基于 C 语言实现,使用非阻塞 IO 复用来高效处理请求。主从同步机制确保数据一致性,首次同步需生成 RDB 文件。事务虽保证命令序列化执行但不支持回滚。Bigkey 会增加网络负载并可能导致内存不平衡。缓存雪崩、穿透等问题可通过分散过期时间和布隆过滤器解决。缓存预热则预先填充热点数据。
23 0
下一篇
无影云桌面