Redis数据库概述

128 阅读2分钟

定义

redis, remote dictionary server

  1. 开源的,C原语言编写,非关系数据库
  2. 以key-value键值对进行数据存储,内存型数据库,可以做持久化
  3. 支持多种数据类型 字符串(str,number) 列表类型 哈希 集合 有序集合
  4. 单进程单线程,可做并发计数,无法利用多核的CPU资源
  5. 为解决磁盘IO性能瓶颈而提出,提供C,C++,JAVA,PythonC,C++,JAVA,Python等接口

特点

  1. 数据存在内存中,读取速度快,可以存入磁盘做数据持久化,便于数据的备份,恢复
  2. 内存中的key,可以设置过期时间,一段时间后自动删除,释放内存
  3. 支持简单的事务
  4. 主从复制,主节点挂掉,从节点补上
  5. 哨兵机制,自动故障转移

应用场景

  1. 作为缓存,请求的数据优先走缓存,缓存没有,再走数据库,有效减少数据库查询压力
  2. 并发计数,利用redis单进程单线程特性
  3. 实时排行榜
  4. 生产者,消费者模型的中间层

数据类型

  1. 字符串
  2. 列表类型
  3. 哈希类型
  4. 集合
  5. 有序集合

事务

redis支持简单的事务

数据持久化

数据持久化的方式:

  1. RDB
  2. AOF

主从复制

Master-Slave结构
主节点,可读、写
从节点,只可读,分担主节点读的压力 主节点故障,从节点自动升为主,继续提供服务

哨兵

实现故障的自动转移。 默认的Redis主从复制,主节点挂掉后,是不能再继续提供服务的,因为此时没有主节点。可以通过人工的方式重新选择一个节点作为Master节点,然后即可以继续提供服务。不过这种人工的方式有点繁琐,比较简单的方式就是通过哨兵监控方式,实现自动的故障转移。

下一篇:Redis数据库的安装与配置