【11月7日】Redis简介

Redis简介


关系数据库的不足

  • 不能有效处理多维数据
  • 高并发读写性能低
  • 支撑容量有限
  • 数据库的可扩展性和可用性低

NoSQL数据库的优势

  • 易扩展
  • 大数据量
  • 高性能

NoSQL = Not Only SQL(非关系型数据库)

  1. NoSQL数据之间无关系,数据库的结构简单,这样就容易扩展,可以方便实现高可用的架构。
  2. NoSQL的出现弥补了关系数据库在某些方面的不足,极大的节省开发成本和维护成本


Redis是当前比较热门的NoSql数据库产品之一,是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的高性能键值对Key-Value数据库(区别于MySQL的二维表格的形式存储)。它通过提供多种键值数据类型来适应不同场景下的存储需求。


Redis数据类型:

  • String(字符串)
  • List(列表)
  • Set(无序集合)
  • Zset(有序集合)
  • Hash(哈希表)

Redis特点:

  • 性能极高(Redis读取的速度是110000次/s,写的速度是81000次/s)
  • 原子性(Redis 的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行)
  • 支持多种数据结构(string、list、hash、set、zset)
  • 支持持久化
  • 支持主从复制
  • 支持集群
  • 支持key过期时间特性
  • 支持事务
  • 支持消息/订阅模式
  • 官方仅支持Linux系统(有第三方版本支持Windows系统)

Redis的应用场景

数据缓存应用(最多使用)

缓存的两种形式:

  • 页面缓存:第一次从数据库读取,然后生成一个静态页面,以后所有的读取,只加载静态页面
  • 数据缓存:由于一个页面有几种需要从不同的缓存中读取数据的模块,所以不适合使用页面缓存

热点数据:数据库中数据被访问的频率是不均匀的,频繁被访问的数据称为热点数据

  • 会话缓存应用:分布式集群架构中的session分离
  • 排行榜应用:利用Redis的sorted set(有序集合)
  • 计数器应用:利用Redis的原子性
  • 数据过期处理:利用Redis支持的过期时间特性可以定时清除过期数据,如定期活动(精确到毫秒)
  • 消息队列:Redis支持消息/订阅模式,可以构建实时的消息队列

Redis两个特点

单进程

  • Redis的服务器程序采用的是单进程的模型来处理客户端的请求
  • Redis的实际处理速度完全依赖主进程的执行效率
  • 假如同时有多个客户端并发访问服务器,则服务器处理能力在一定情况下将会下降。假如要提升服务器的并发能力,那么可以采用在单台机器上部署多个redis进程的方式。

多数据库(16个)

  • Redis每个数据库对外都是0开始递增的数字来命名,默认16个数据库,默认使用0号数据库,可以使用select+数字来选择数据库
  • Redis不支持自定义数据库名字
  • Redis不支持为每一个数据库设置不同的访问密码
  • Redis多花个数据库之间并不是完全独立的(FlushAll命令:清空redis全部的数据)
posted @ 2020-11-07 00:38  tantanli  阅读(96)  评论(0编辑  收藏  举报