zoukankan      html  css  js  c++  java
  • Redis必须知道的

    1.什么是Redis
    答:Redis是一款内存高速缓存数据库,Redis是一个key-value存储系统(键值存储系统)。 
    
    2.Redis常用的数据类型有什么
      答:Redis一共支持五种数据类型:String(字符串)、hash(哈希)、list(列表)、set(集合)和zset(sorted  set有序集合)
    
      (1)String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB
    
      (2)Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象
    
      (3)List(列表):是redis的简单的字符串列表,按插入顺序排序
    
      (4)Set(集合):是String字符串类型的无序集合,也不可重复
    
      (5)ZSet(sorted  set  有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。
      
     3.Reids的使用场景
     答: 众多语言都支持Redis,因为Redis交换数据快,在服务器中常用来存储一些需要频繁调取的数据,节省内存开销,也极大的提升了速度。
    
        将一些热点数据存储到Redis中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。
    
        (1)会话缓存(最常用) 
    
        (2)消息队列(支付)
    
        (3)活动排行榜或计数
    
        (4)发布,订阅消息(消息通知)
    
        (5)商品列表,评论列表
     
     4.Redis的持久化
    
    Redis持久有两种方式:快照(RDB),仅附加文件(AOF)
    
    快照(RDB):1、将存储在内存的数据以快照的方式写入二进制文件中,默认dump.rdb中
    
             2、保存900 1               # 900秒内如果超过1个key被修改,则启动快照保存
    
             3、保存300 10            # 300秒内如果超过10个key被修改,则启动快照保存
    
             4、保存60 1000         # 60秒内如果超过10000个重点被修改,则启动快照保存
    
    仅附加文件(AOF):1、使用AOF持久时,服务会将每个收到的写命令通过写函数追加到文件中(appendonly.aof)
    
                     2、AOF持久化存储方式参数说明
    
                                             appendonly  yes    #开启AOF持久化存储方式
    
                                             appendfsync   always   #收到写命令后就立即写入磁盘,效率最差,效果最好
    
                                             appendfsync   everysec     #每秒写入磁盘一次   效率与效果居中
    
                                              appendfsync   no               #完全依赖操作系统,效率最佳,效果没法保证
    5.存储结构
    答:(1)redis中以key-value的形式存储,key固定是字符串,使用字符串对象进行表示,value可以是字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(ZSet)。
    
    (2)在内存中,每个Key-Value都被划分成DictEntry、RedisObject以及具体对象,DictEntry又分别包含指向Key和Value的指针,以及指向下一个DicEntry的指针,指向key和value的指针也是以RedisObject的形。
                                              
    6.主从复制
    答:主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。
    
    默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
    
    主从复制的作用
    
    主从复制的作用主要包括:
    
    数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
    故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
    负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
    高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。
    
    7.Redis的缓存穿透和缓存雪崩
    答:缓存穿透是指查询一个一定不存在的数据,由于缓存不命中,接着查询数据库也无法查询出结果,因此也不会写入到缓存中,这将会导致每个查询都会去请求数据库,造成缓存穿透;
    
    缓存雪崩是指,由于缓存层承载着大量请求,有效的保护了存储层,但是如果缓存层由于某些原因整体不能提供服务,于是所有的请求都会达到存储层,存储层的调用量会暴增,造成存储层也会挂掉的情况。
    
    8.Redis哨兵
    答:答:Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,
    自动将下线主服务器属下的某个从服务器升级为新的主服务器。    9.Redis集群 答:Redis集群提供一种方式自动将数据分布在多个Redis节点上。 10.redis的服务相关命令 答:slect#选择数据库(数据库编号0-15) 退出 # 退出连接 信息 # 获得服务的信息与统计 monitor # 实时监控 config get # 获得服务配置 flushdb # 删除当前选择的数据库中的key flushall # 删除所有数据库中的键 11.Redis特点 答:(1)Redis以内存作为数据存储介质,读写数据的效率极高。 (2)Redis跟memcache不同的是,储存在Redis中的数据是持久化的,断电或重启,数据也不会丢失。 (3)Redis的存储分为内存存储、磁盘存储和log文件。 (4)Redis可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis才能实现持久化。 (5)Redis支持主从模式,可以配置集群,更利于支撑大型的项目。
  • 相关阅读:
    codeforces C. No to Palindromes!
    codeforces D. Pashmak and Parmida's problem
    codeforces C. Little Pony and Expected Maximum
    codeforces D. Count Good Substrings
    codeforces C. Jzzhu and Chocolate
    codeforces C. DZY Loves Sequences
    codeforces D. Multiplication Table
    codeforces C. Painting Fence
    hdu 5067 Harry And Dig Machine
    POJ 1159 Palindrome
  • 原文地址:https://www.cnblogs.com/liqinzhen/p/12786532.html
Copyright © 2011-2022 走看看