【Redis 开发与运维】初识 Redis
文章目录
- 一、什么是 Redis ?
- 二、Redis 的特性
- 三、Redis 典型使用场景
- Redis 可以做什么
- Redis 不可以做什么
- 四、为什么单线程还能这么快
- 单线程要注意的问题
一、什么是 Redis ?
Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用
ANSI C
语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value
数据库。
二、Redis 的特性
- 速度快
- 所有数据都存放在内存中
- C语言实现
- 单线程架构
- 基于键值对的数据结构服务器
- 支持字符串、哈希、列表、集合、有序集合、BitMaps(位图)、HyperLogLog(超小内存唯一值计数)、GEO(地理信息定位)
- 功能丰富
- 发布订阅、Lua脚本、事务、pipeline
- 简单稳定
- 源码少,早期版本只有 2 万行左右,3.0 版本之后增加了集群特性,代码增至 5 万行左右
- 单线程模型
- 不依赖操作系统中的类库
- 客户端语言多
- 支持 Java、php、python、ruby、lua、nodeJS…
- 持久化
- Redis 所有数据保存在内存当中,对数据的更新将异步地保存到磁盘上。
- 主从复制
- 支持主从复制,后面文章介绍
- 高可用、分布式
- Redis-Sentinel 支持高可用,后面文章介绍
- Redis-Cluster 支持分布式,后面文章介绍
三、Redis 典型使用场景
Redis 可以做什么
- 缓存
- 缓存机制几乎在所有的大型网站都有使用,合理地使用缓存
不仅可以加快数据的访问速度,而且能够有效的降低后端数据源的压力
。Redis 提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略
。
- 排行榜
- Redis 提供了
列表和有序集合数据结构
,合理使用可以很方便地构建各种排行榜系统。比如按照热度排行的微博热搜、百度热搜等。
- 计数器
- 比如微博的转发数、评论数、点赞数等,为了保证数据的实时性,每一次都要做加 1 的操作,如果并发量很大对于传统关系型数据的性能是一种挑战。Redis
天然支持计数功能而且计数的性能也非常好
,是计数器系统的重要选择。
- 社交网络
- 例如粉丝数、观众数、共同关注、时间轴列表等等,由于
社交网站访问量通常比较大
,而且传统关系型数据库不太适合保存这种类型的数据,Redis 提供的数据结构可以相对比较容易地实现这些功能
。
- 消息队列系统
- Redis
提供了发布订阅功能和阻塞队列的功能
,轻量级的消息队列系统,一些对于消息队列功能不是有很强要求的系统的时候,就可以使用它来实现。
Redis 不可以做什么
- 从
数据规模角度
看,因为 Redis 数据都是放在内存中的,数据量非常大并不适合 Redis 的使用场景。 - 从
数据冷热角度
看,热数据指频繁操作的数据,反之为冷数据。如果将冷数据放内存,那对于内存是一种浪费,将热数据放入内存可以加速读写,也可降低后端负载。
四、为什么单线程还能这么快
通常来说,单线程处理能力要比多线程差,那 Redis 的单线程架构为什么还能这么快?
纯内存访问
,Redis 将所有数据放在内存中。非阻塞 I/O
,Redis 使用 epoll 作为 I/O多路复用技术
的实现,不在网络 I/O 上浪费过多时间。- 单线程
避免了线程切换和竞态产生的消耗
。
单线程要注意的问题
- 因为是单线程,同一时间只运行一条命令,所以它
拒绝长(慢)命令
,单线程对于每个命令的执行时间是有要求的。如果命令执行过长,会造成其他命令的阻塞,对于 Redis 这种高性能的服务来说是致命的。
来源:《Redis 开发与运维》第 1 章 初识 Redis
【Redis 开发与运维】初识 Redis相关推荐
- Redis开发与运维 必备-电子书
Redis开发与运维电子书 fulei出版 链接: https://pan.baidu.com/s/12rlHhOKP7_72GE8a74lN1g 密码: eep2 复制这段内容后打开百度网盘手机Ap ...
- 「Redis开发与运维」读书笔记
第一章 初识Redis Redis的8个重要特性 速度快 内存存储数据 C语言实现 单线程架构,避免多线程竞争问题 Redis源码优化好 基于键值对的数据结构服务器 Redis 值可支持多种数据结构, ...
- 读书笔记:redis开发与运维 基础篇
redis特性 1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll ...
- <Redis开发与运维>一书阅读笔记记录
文章目录 前言 第1章:初始redis 盛赞redis redis特性 redis使用场景 第2章:API的理解和使用 预备知识 全局命令 数据结构和内部编码 单线程架构 字符串 命令 内部编码 典型 ...
- 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 ...
- 《Redis开发与运维》读书笔记--初识Redis(一)
目录 盛赞Redis Redis特性 redis使用场景 redis可以做什么? redis不可以做什么? 关于用好redis的两点建议 本章重点回顾 写在前面: 想必在写项目的过程中,我们很多时候都 ...
- 【Redis】《Redis 开发与运维》笔记-Chapter12-开发运维的“ 陷阱”
十二.开发运维的" 陷阱" 1.Linux配置优化之内存分配控制 1)vm.overcommit_memory Linux操作系统对大部分申请内存的请求都回复yes,以便能运行更多 ...
- 《Redis开发与运维》各章重点回顾
第 1 章 初识 Redis Redis 8个特性:速度快.基于键值对的数据结构服务器.功能丰富.简单稳定.客户端语言多.持久化.主从复制.支持高可用和分布式. Redis 不是万金油,有些场景不适合 ...
- Redis 开发与运维
Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务 ...
- Redis理解内存《Redis开发与运维读书笔记》
文章目录 内存的消耗 内存划分 内存管理 内存优化 内存的消耗 可以使用info memory 查看内存消耗. 内存划分 对象内存 = sizeof(key) + sizeof(value) 应避免使 ...
最新文章
- [NC21228]货币系统
- ubuntu下安装windows虚拟机
- 在WinRT中读取资源文件
- V8 Profiler 揭秘
- LimeSDR性能参数介绍及如何用它实现通信过程
- 互联互通谋定贸易伙伴 国际农民丰收节贸易会品牌发展
- [图像处理] Python+OpenCV实现车牌区域识别及Sobel算子
- 初识FPGA(搬运)
- Cookie,Session解决用户的会话跟踪问题
- Java中操作SFTP服务器上的文件下载上传
- frok的一个Demo测试素数
- 伦茨8400变频器面板按键说明_国产变频器按键的各个功能
- 以智图为例讲解自动发布CI/CD技术在逐浪CMS中的应用
- Atitit 艾提拉整理清明节的诗歌集合 清明节的特征 万物复苏 百草发芽 尝试从股市 其他外国诗歌集 得到清明的诗歌 约谈春天 歌颂春天 下雨 不见方三日、 夜来风雨声,花落知多少。(
- Dapr for dotnet | 并发计算模型 - Virtual Actors
- 又一家边缘计算公司融资啦!!!
- 蓝牙协议之配对和绑定学习笔记
- 如何把一张照片的像素提高_如何提升照片的像素?
- python open unicodedecodeerror_python 读取文件时报错UnicodeDecodeError: 'gbk' co
- 唯品会开盘股价超过8美元 市值再超当当网
热门文章
- unityShader
- 武汉理工大学计算机专业课程表,武汉理工大学2014年春季第一周课表.xls
- mybatis 报错. Cause: org.apache.ibatis.type.TypeException: Error setting non null for parameter #2 wit
- Zookeeper-watcher机制源码分析(一)
- 车型代号对照表_车型代号对照表 2016最新版
- 从吃喝玩乐到学习,71个良心网站,看完你会回来点收藏
- PE系统-微PE工具箱V2.1 - 有情怀的PE - PE中的战斗鸡无广告VIP精品
- SSH中 三大框架的各自的作用及好处
- Echarts 3使用
- 免费中文版Adobe Acrobat Reader DC PDF文件阅读软件