Redis简述

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,非关系型数据库。

Redis介绍

特点及优点

1
2
3
4
开源的,使用C编写,基于内存且支持持久化
高性能的Key-Value的NoSQL数据库
支持数据类型丰富,字符串strings,散列hashes,列表lists,集合sets,有序集合sorted sets 等
支持多种编程语言(C C++ Python Java PHP ... )

与其他数据库对比

1
2
3
4
MySQL : 关系型数据库,表格,基于磁盘,慢
MongoDB:键值对文档型数据库,值为JSON文档,基于磁盘,慢,存储数据类型单一
Redis的诞生是为了解决什么问题??
# 解决硬盘IO带来的性能瓶颈

应用场景

1
2
3
4
5
6
7
8
使用Redis来缓存一些经常被用到、或者需要耗费大量资源的内容,通过这些内容放到redis里面,程序可以快速读取这些内容
一个网站,如果某个页面经常会被访问到,或者创建页面时消耗的资源比较多,比如需要多次访问数据库、生成时间比较长等,我们可以使用redis将这个页面缓存起来,减轻网站负担,降低网站的延迟,比如说网站首页等
比如新浪微博
# 新浪微博,基于TB级的内存数据库
# 内容 :存储在MySQL数据库
# 关系 :存储在redis数据库
# 数字 :粉丝数量,关注数量,存储在redis数据库
# 消息队列

数据库排名

redis版本

1
2
3
4
5
6
最新版本:5.0
常用版本:2.4、2.6、2.8
3.0(里程碑)、3.2、3.4、4.0、5.0
图形界面管理工具(写的一般)
RedisDesktopManager
为了解决负载问题,所以发明了redis

诞生历程

  1. 历史
    LLOOGG.com 帮助别的网站统计用户信息,各个网站发送的浏览记录都会存储到存储队列,5-10000条记录,多余5条需要收费

  2. 原理
    FIFO机制,先进先出,满了进一条就出一条,网站越多,队列越多,推入和弹出操作越多

  3. 技术及问题
    开始使用MySQL进行硬盘读写,速度很慢,导致无法实时显示,所以自己写了一个列表结构的内存数据库,程序性能不会受到硬盘IO的限制,加了持久化的功能

  4. redis数据库戛然而生

Redis附加功能

  1. 持久化
    将内存中数据保存到磁盘中,保证数据安全,方便进行数据备份和恢复
  2. 发布与订阅功能
    将消息同时分发给多个客户端,用于构建广播系统
  3. 过期键功能
    为键设置一个过期时间,让它在指定时间内自动删除
    <节省内存空间>
    音乐播放器,日播放排名,过期自动删除
  4. 事务功能
    原子的执行多个操作
  5. 主从复制
  6. Sentinel哨兵