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

简介: 会会大厂面试官三-----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


目录
相关文章
|
5月前
|
存储 缓存 NoSQL
Redis常见面试题全解析
Redis面试高频考点全解析:从过期删除、内存淘汰策略,到缓存雪崩、击穿、穿透及BigKey问题,深入原理与实战解决方案,助你轻松应对技术挑战,提升系统性能与稳定性。(238字)
|
10月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
8月前
|
存储 NoSQL 定位技术
Redis数据类型面试给分情况
Redis常见数据类型包括:string、hash、list、set、zset(有序集合)。此外还包含高级结构如bitmap、hyperloglog、geo。不同场景可选用合适类型,如库存用string,对象存hash,列表用list,去重场景用set,排行用zset,签到用bitmap,统计访问量用hyperloglog,地理位置用geo。
318 5
|
8月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
679 2
|
9月前
|
缓存 NoSQL Java
Java Redis 面试题集锦 常见高频面试题目及解析
本文总结了Redis在Java中的核心面试题,包括数据类型操作、单线程高性能原理、键过期策略及分布式锁实现等关键内容。通过Jedis代码示例展示了String、List等数据类型的操作方法,讲解了惰性删除和定期删除相结合的过期策略,并提供了Spring Boot配置Redis过期时间的方案。文章还探讨了缓存穿透、雪崩等问题解决方案,以及基于Redis的分布式锁实现,帮助开发者全面掌握Redis在Java应用中的实践要点。
474 6
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
545 85
|
11月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
12月前
|
NoSQL Redis
Redis的常用数据类型有哪些 ?
Redis 有 5 种基础数据结构,它们分别是:string(字符串)、list(列表)、hash(字典)、set(集 合) 和 zset(有序集合)
|
存储 缓存 NoSQL
Redis 面试题
Redis 基础面试题
302 1
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?