zoukankan      html  css  js  c++  java
  • Redis

    1、Redis使用场景

      业务系统上的数据库访问中,读多写少时(若读较少,则不需要使用Redis作为缓存),在高并发系统中,使用NoSQL技术,将热点数据放入内存中,以减轻数据库的压力——提升数据访问速度。

      Redis的数据缓存能力解决了访问性能问题和并发问题。 除此之外,Redis实现了分布式锁。 

    2、为什么实用Redis?Redis的特点?

      Redis基于内存,常用作缓存,存储形式是key-value对。

      java有Map,不可以吗?

      不可以。map实现的是本地缓存,声明周期随jvm的结束而结束;并且在多实例的情况下,每个jvm都需要各自保存一份缓存,缓存不具有一致性。redis实现的是分布式缓存,多个实例可以共享一份缓存数据。Redis可以拿几十个G作缓存。Redis可以持久化缓存数据,重启后可以恢复使用。

      Redis可以持久化吗?

      可以。可以将缓存数据保存在硬盘里,redis重启后可以重新恢复。

    3、为什么用缓存?

      数据库的读写需要经过磁盘,速度较慢。有了缓存,直接访问存储在内存中的数据,提高了访问速度,增加了并发性。

    4、Redis的对象?

      Redis的key一定是字符串。value可以是String、list有序列表、set无序集合、hash、sortset(有序集合)等、

    5、Redis默认几个数据库?

      16个。 0 - 15.

    6、key的过期时间

      

    7、Redis是单线程的,为什么会那么快?

      纯内存操作、核心是基于非阻塞的IO多路复用机制、单线程避免了多线程的上下文频繁切换

    8、Redis主从复制

      若请求过多,一台redis服务器处理不来,则需要主从复制。

      好处:从服务器负责读,主服务器负责写,读写分离;高可用,一台从挂了,其他服务器仍可接收读,不影响服务;处理更多的并发

      特点;主、从服务器的数据是一致的。

      复制功能的具体实现?

      分为两步:1、同步。将从服务器的数据库状态更新为主服务器的数据库状态。

           2、命令传播。主服务器写了数据,导致主从服务器数据不一致,通过命令传播,将主服务器执行的写命令传给从,让从业也执行。

      如果主服务器挂了?

      Redis提供了哨兵机制,将从服务器升级为主服务器。

      假如旧的服务器又连上?

      从新连上的变为从服务器。

    9、哨兵机制

      用于实现Redis的高可用性。

    10、什么是缓存雪崩?

      缓存数据在某段时间内同时失效,导致请求直接访问了数据库。

      如何解决缓存雪崩?

      在缓存的时候给过期时间加上一个随机值,大幅减少缓存在同一时间失效的可能性。

      若真的发生了,怎么办?

      设置本地缓存 + 限流,保证服务能正常工作。

      发生之后,怎么办? 

      redis重新后,自动从磁盘上加载数据,快速恢复缓存数据。

    11、什么是缓存穿透?

      请求的数据在缓存中大量不命中,导致请求访问了数据库。

      如何解决?

      过滤掉不合法的请求参数;当从数据库查询不到时候,将一空对象设置到缓存,并设置一个较短的过期时间;

    12、缓存与数据库双写一致

      

    一回生,二回熟
  • 相关阅读:
    剑指Offer——对成的二叉树
    剑指Offer——二叉树的下一个节点
    路径总和I、II、III
    性能调优工具
    关于在程序中内存检测的一些知识
    ptmalloc、tcmalloc及 jemalloc总结
    [LeetCode] 43. 字符串相乘
    [LeetCode] 155. Min Stack
    [LeetCode] 380. Insert Delete GetRandom O(1)
    linux内存过高排查
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12642897.html
Copyright © 2011-2022 走看看