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

    转载自:    七道常见的Redis面试题分享(含个人解答) - 茶轴的青春 - 博客园 (cnblogs.com)

                     《进大厂系列》系列-Redis常见面试题(带答案) - 知乎 (zhihu.com)

    Redis的主要缺点:

      是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

    使用redis有哪些好处?   

       (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
       (2) 支持丰富数据类型,支持string,list,set,sorted set,hash
       (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
       (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

    redis内存淘汰策略(mySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据)  

         相关知识:redis可以配置内存大小。redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略(回收策略)。redis 提供 6种数据淘汰策略,这个策略可以在配置文件中配置:

    • volatile-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(驱逐):禁止驱逐数据

    请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。

      用redis  list实现:列表中key是用户ID,列表中value存放的是登录的时间戳,只要最后的第5次登陆时的时间和第一次登录的时间差不超过1小时就禁止登陆.

    Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。

    如果设置了最大使用的内存,则数据已有记录数达到内存限值后不能继续插入新值

    Redis是单进程单线程的

  • 相关阅读:
    动态规划——Best Time to Buy and Sell Stock IV
    动态规划——Split Array Largest Sum
    动态规划——Burst Ballons
    动态规划——Best Time to Buy and Sell Stock III
    动态规划——Edit Distance
    动态规划——Longest Valid Parentheses
    动态规划——Valid Permutations for DI Sequence
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之法阅读笔记03
  • 原文地址:https://www.cnblogs.com/liufei1983/p/15362607.html
Copyright © 2011-2022 走看看