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

    Redis面试


    存储类型:String,list,set,hash,zset

    集群方案:codis,redis-cluster,业务层实现关联几个不同的redis实例

    如何保证热点数据:数据淘汰策略

    (redis中有6种淘汰策略:报错,随机删除,删除最少使用的键,在设置时间的键位中删除最少使用(最早过期,随机移除))

    集群主从复制措施:异步复制

    哈希槽:16384个

    事物:MULTI,EXEC,DISCARD,WATCH


    redis缓存雪崩

    即大面积的数据同一时间内失效。

    解决方案:

    • 1.失效时间设为随机
    • 2.使用互斥锁或者队列(如设置只允许单个key访问数据库,其他线程等待)
    • 3.使用双缓存。A,B两个redis服务器,B不过期,A过期时,访问B,同时启动异步线程,刷新A和B的缓存。

    redis缓存穿透

    即高并发请求redis缓存中没有的key,导致压力到数据库。

    • 1.使用互斥锁或者队列。得到锁才能请求数据库
    • 2.异步更新(无论是否有该Key,都将该key写到redis中,并设置时间,过期后用异步更新,需要做缓存预热)
    • 3.提供拦截机制,如IP拦截等,判断查询的合法性。

    单线程redis的问题

    单线程redis快的原因:

    • 1.纯内存操作
    • 2.单线程操作,无需切换进程上下文
    • 3.采用了非阻塞I/O多路复用机制(即一个快递员方法)

    redis与分布式锁

    利用redis的键判断幂等性

    redis的分布式事物

    用watch方法观察唯一key,在redis事物提交之前,判断是否有该key,无则提交。当然要考虑异常问题,所以在finally代码块中需要解锁。(在秒杀系统的高并发下也可以使用这种方法)
  • 相关阅读:
    使用Publish Over SSH插件实现远程自动部署
    Certificates does not conform to algorithm constraints
    在 Linux 命令行脚本中执行 sudo 时自动输入密码
    pig学习
    Attention-based Model
    kesci---2019大数据挑战赛预选赛---情感分析
    计算广告(1)---广告技术概览
    Hadoop 使用小命令(2)
    shell学习(2)----常用语法
    docker入门
  • 原文地址:https://www.cnblogs.com/tanyiming/p/11172669.html
Copyright © 2011-2022 走看看