zoukankan      html  css  js  c++  java
  • Redis面试题

    1.redis基本数据类型及常用客户端命令

     string、list、set、zset、hash。相关指令见 redis常用客户端命令

    2.redis过期key删除策略

    Redis中过期key的删除策略,分为三种:定时删除、定期删除、惰性删除。其中,定时删除和定期删除是主动删除策略,惰性删除是被动删除策略。
    1、定时删除
    定时删除是在设置key的过期时间的同时,会创建一个定时器(timer)。定时器在key的过期时间来临时,立即执行对key的删除操作。缺点是消耗CPU,基本不使用
    2、定期删除
    定期删除是每隔一段时间,程序就会对Redis数据进行一次检查,删除里面的一定数量的过期key,通过定期删除策略,可以有效地减少因为过期key而带来的内存浪费。
    3、惰性删除
    惰性删除是是每次获取key时,都会检查取得的key是否过期,如果过期,则删除该key;若没有过期,就返回该key的值。缺点是对内存是最不友好的。如果一个key已经过期,而这个key又仍然保留在db中,那么只要这个过期key不被删除,它所占用的内存就不会释放。

    3.redis数据淘汰策略

    voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
    volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
    volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
    allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
    allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
    no-enviction(驱逐):禁止驱逐数据

    4.redis持久化

    见 redis.conf详解

    5.redis事务

    见 redis事务

    6.redis单线程模型原理

    见 redis单线程模型 

    7.redis集群

    见 redis集群

    8.redis管道

    见 redis管道(Pipeline)

    9.假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?

    使用keys指令可以扫出指定模式的key列表。
    
    对方接着追问:如果这个redis正在给线上的业务提供服务,那使用keys指令会有什么问题?
    
    这个时候你要回答redis关键的一个特性:redis的单线程的。keys指令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕,服务才能恢复。这个时候可以使用scan指令,scan指令可以无阻塞的提取出指定模式的key列表,但是会有一定的重复概率,在客户端做一次去重就可以了,但是整体所花费的时间会比直接用keys指令长。

    10.缓存雪崩和缓存穿透问题解决方案

    缓存雪崩:缓存同一时间大面积的失效
    缓存穿透:请求缓存中不存在的数据
    解决缓存穿透问题,最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。

     11.Redis相比memcached有哪些优势

    1.memcached所有的值均是简单的字符串,Redis作为其替代者,支持更为丰富的数据类型
    2.Redis的速度比memcached快很多
    3.Redis可以持久化其数据
    4.Redis支持数据的备份,即master-slave模式的数据备份。

    12.redis分布式锁

    见 redis分布式锁

  • 相关阅读:
    intellij idea for mac 2018 破解版
    Mac下Supervisor进程监控管理工具的安装与配置
    Mysql千万级大表优化策略
    php7实现基于openssl的加密解密方法
    openresty--centos7下开发环境安装
    webstorm下搭建编译less环境 以及设置压缩css
    七牛图片上传
    聊一聊PHP的依赖注入(DI) 和 控制反转(IoC)
    joomla! 3.X 开发系列教程
    JSON反序列化接口的问题
  • 原文地址:https://www.cnblogs.com/ryjJava/p/14265142.html
Copyright © 2011-2022 走看看