文章目录

  • 一、什么是 Redis ?
  • 二、Redis 的特性
  • 三、Redis 典型使用场景
    • Redis 可以做什么
    • Redis 不可以做什么
  • 四、为什么单线程还能这么快
    • 单线程要注意的问题

一、什么是 Redis ?

Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。


二、Redis 的特性

  1. 速度快
  • 所有数据都存放在内存中
  • C语言实现
  • 单线程架构
  1. 基于键值对的数据结构服务器
  • 支持字符串、哈希、列表、集合、有序集合、BitMaps(位图)、HyperLogLog(超小内存唯一值计数)、GEO(地理信息定位)
  1. 功能丰富
  • 发布订阅、Lua脚本、事务、pipeline
  1. 简单稳定
  • 源码少,早期版本只有 2 万行左右,3.0 版本之后增加了集群特性,代码增至 5 万行左右
  • 单线程模型
  • 不依赖操作系统中的类库
  1. 客户端语言多
  • 支持 Java、php、python、ruby、lua、nodeJS…
  1. 持久化
  • Redis 所有数据保存在内存当中,对数据的更新将异步地保存到磁盘上。
  1. 主从复制
  • 支持主从复制,后面文章介绍
  1. 高可用、分布式
  • Redis-Sentinel 支持高可用,后面文章介绍
  • Redis-Cluster 支持分布式,后面文章介绍

三、Redis 典型使用场景

Redis 可以做什么

  1. 缓存
  • 缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效的降低后端数据源的压力。Redis 提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略
  1. 排行榜
  • Redis 提供了列表和有序集合数据结构,合理使用可以很方便地构建各种排行榜系统。比如按照热度排行的微博热搜、百度热搜等。
  1. 计数器
  • 比如微博的转发数、评论数、点赞数等,为了保证数据的实时性,每一次都要做加 1 的操作,如果并发量很大对于传统关系型数据的性能是一种挑战。Redis 天然支持计数功能而且计数的性能也非常好,是计数器系统的重要选择。
  1. 社交网络
  • 例如粉丝数、观众数、共同关注、时间轴列表等等,由于社交网站访问量通常比较大,而且传统关系型数据库不太适合保存这种类型的数据,Redis 提供的数据结构可以相对比较容易地实现这些功能
  1. 消息队列系统
  • Redis 提供了发布订阅功能和阻塞队列的功能,轻量级的消息队列系统,一些对于消息队列功能不是有很强要求的系统的时候,就可以使用它来实现。

Redis 不可以做什么

  • 数据规模角度看,因为 Redis 数据都是放在内存中的,数据量非常大并不适合 Redis 的使用场景。
  • 数据冷热角度看,热数据指频繁操作的数据,反之为冷数据。如果将冷数据放内存,那对于内存是一种浪费,将热数据放入内存可以加速读写,也可降低后端负载。

四、为什么单线程还能这么快

通常来说,单线程处理能力要比多线程差,那 Redis 的单线程架构为什么还能这么快?

  • 纯内存访问,Redis 将所有数据放在内存中。
  • 非阻塞 I/O,Redis 使用 epoll 作为 I/O 多路复用技术的实现,不在网络 I/O 上浪费过多时间。
  • 单线程避免了线程切换和竞态产生的消耗

单线程要注意的问题

  • 因为是单线程,同一时间只运行一条命令,所以它拒绝长(慢)命令,单线程对于每个命令的执行时间是有要求的。如果命令执行过长,会造成其他命令的阻塞,对于 Redis 这种高性能的服务来说是致命的。

来源:《Redis 开发与运维》第 1 章 初识 Redis

【Redis 开发与运维】初识 Redis相关推荐

  1. Redis开发与运维 必备-电子书

    Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...

  2. 「Redis开发与运维」读书笔记

    第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...

  3. 读书笔记:redis开发与运维 基础篇

     redis特性    1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...

  4. <Redis开发与运维>一书阅读笔记记录

    文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...

  5. Redis开发与运维笔记_1 初识2 API

    目录 概述 第1章 初识Redis 1.1 盛赞Redis 1.2 Redis特性 1.3 配置.启动.操作.关闭Redis 第2章 API的理解和使用 2.1 预备 2.1.1 全局命令 2.1.2 ...

  6. 《Redis开发与运维》读书笔记--初识Redis(一)

    目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...

  7. 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”

    十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...

  8. 《Redis开发与运维》各章重点回顾

    第 1 章 初识 Redis Redis 8个特性:速度快.基于键值对的数据结构服务器.功能丰富.简单稳定.客户端语言多.持久化.主从复制.支持高可用和分布式. Redis 不是万金油,有些场景不适合 ...

  9. Redis 开发与运维

    Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...

  10. Redis理解内存《Redis开发与运维读书笔记》

    文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...

最新文章

  1. [NC21228]货币系统
  2. ubuntu下安装windows虚拟机
  3. 在WinRT中读取资源文件
  4. V8 Profiler 揭秘
  5. LimeSDR性能参数介绍及如何用它实现通信过程
  6. 互联互通谋定贸易伙伴 国际农民丰收节贸易会品牌发展
  7. [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子
  8. 初识FPGA(搬运)
  9. Cookie,Session解决用户的会话跟踪问题
  10. Java中操作SFTP服务器上的文件下载上传
  11. frok的一个Demo测试素数
  12. 伦茨8400变频器面板按键说明_国产变频器按键的各个功能
  13. 以智图为例讲解自动发布CI/CD技术在逐浪CMS中的应用
  14. Atitit 艾提拉整理清明节的诗歌集合 清明节的特征 万物复苏 百草发芽 尝试从股市 其他外国诗歌集 得到清明的诗歌 约谈春天 歌颂春天 下雨 不见方三日、 夜来风雨声,花落知多少。(
  15. Dapr for dotnet | 并发计算模型 - Virtual Actors
  16. 又一家边缘计算公司融资啦!!!
  17. 蓝牙协议之配对和绑定学习笔记
  18. 如何把一张照片的像素提高_如何提升照片的像素?
  19. python open unicodedecodeerror_python 读取文件时报错UnicodeDecodeError: 'gbk' co
  20. 唯品会开盘股价超过8美元 市值再超当当网

热门文章

  1. unityShader
  2. 武汉理工大学计算机专业课程表,武汉理工大学2014年春季第一周课表.xls
  3. mybatis 报错. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #2 wit
  4. Zookeeper-watcher机制源码分析(一)
  5. 车型代号对照表_车型代号对照表 2016最新版
  6. 从吃喝玩乐到学习,71个良心网站,看完你会回来点收藏
  7. PE系统-微PE工具箱V2.1 - 有情怀的PE - PE中的战斗鸡无广告VIP精品
  8. SSH中 三大框架的各自的作用及好处
  9. Echarts 3使用
  10. 免费中文版Adobe Acrobat Reader DC PDF文件阅读软件