卡飞资源网

专业编程技术资源共享平台

Redis性能优化!结构、慢查、内存、策略?给你实打实的干货

Redis性能优化是有经验面试官经常问到的一个问题,接下来咱们就一起看下面试官是如何通过场景来一步一步挖坑的。

一、说下hash结构如何优化(直接上重点吧!考验业务场景的hash底层理解!)

1、hash的底层有两种结构:hashtable、ziplist(但是日常使用经常忽略底层结构的变换)

2、hashtable、ziplist最大的区别就是内存占用(ziplist内存占用比hashtable少75%以上)

3、核心思想:让你的数据尽最大可能使用ziplist

4、参数控制:hash-max-ziplist-entry:512、hash-max-ziplist-value:64

4、举个实际的业务场景:

点赞业务场景:以用户为维度还是以作品为维度,这个需要着重考虑,因为一个人可能最多对一两百个作品点赞(ziplist),但是一个作品可能会被数万人点赞(hastable),那不同的维度触发的底层数据结构是不一样的。

二、redis的key过期后,会立刻删除吗?(是不是没注意过)

1、两种模式:延迟删除、定期清理

2、延迟删除:再次使用该key的时候,再判断这个key是不是过期了,这时候再去删除

3、定期清理:redis每个100毫秒,取20个过期key进行删除。

三、redis慢查询平常统计过没(这个是不是平常也没怎么注意?)

1、先看命令:slowlog get number 获得最近number条慢查询

2、使用监控工具比如profiler,执行redis-cli bigkeys 获取大的键

3、得到了慢查的key,那接下来就结合业务分析处理即可,该调整结构的调整结构,该清理数据的清理数据等等。

四、redis的淘汰策略

1、allkeys-lru:删除最近最少使用的key

2、allkeys-random:随机删除最近最少使用的key

3、volitile-lru:在设置了过期时间的key中删除删除最近最少使用的

4、volitile-random:在设置里过期时间的key中随机删除

五、redis为什么那么快呢(这个是重点,我先说几个点,后面单独出一集详解)

1、基于内存寻址

2、优化了相关数据结构

3、IO多路复用技术

六、redis key设置策略如何优化

1、避免大key

2、key增加离散度,避免同一时间过期

3、避免将redis用于数据管道,除非你的消费能力达标,不然内存挤压严重

4、key可以预加载数据

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言