【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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发飙的蜗牛咻咻咻~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值