欢迎光临散文网 会员登陆 & 注册

redis一些面试题

2023-03-01 21:54 作者:取悦疾风  | 我要投稿

来自 https://www.bilibili.com/video/BV13R4y1v7sP?p=104

1 阿里广告平台,海量数据里查询某一固定前缀的key

海量数据情况下不得使用 keys* 可以使用scan命令

语法

scan命令 

特点

使用

2 小红书,你如何生产上限制keys */flushdb/flushall等危险命令以防止误删误用?

通过配置设置禁用这些命令,redis.conf在SECURITY这一项中

这样,keys * 就没用了

flushdb,flushall也没用了

3 美团,MEMORY USAGE命令你用过吗?

用过 该命令是用来查看某个key在内存中占用大小的命令,返回结果以字节为单位


4 BigKey问题,多大算big?你如何发现?如何删除?如何处理?

多大算big?

string类型的key占用内存大于10kb就是大key,hash,list,set,zset的元素个数超过5000算大key

你如何发现?

可以使用redis-cli --bigkeys 在进入redis的时候会遍历,帮我们们发现bigkey,也可以使用memory usage 查看key在内存中占用的大小,单位是字节

如何删除?

string 删除 一般用del 如果过于庞大用 unlink

hash类型数据可以先删除元素,再删除key,其他类型同理,先砍树干,再砍树根

hash
list
set
zset

5 BigKey你做过调优吗?惰性释放lazyfree了解过吗?

解决方案:

6 Morekey问题,生产上redis数据库有1000w记录,你如何遍历? key *可以吗?

同第一题

redis一些面试题的评论 (共 条)

分享到微博请遵守国家法律