跳至主要內容
Redis 事件

Redis 事件

Redis 服务器是一个事件驱动程序,服务器需要处理两类事件:

  • 文件事件(file event) - Redis 服务器通过套接字(Socket)与客户端或者其它服务器进行通信,文件事件就是对套接字操作的抽象。服务器与客户端(或其他的服务器)的通信会产生文件事件,而服务器通过监听并处理这些事件来完成一系列网络通信操作。
  • 时间事件(time event) - Redis 服务器有一些操作需要在给定的时间点执行,时间事件是对这类定时操作的抽象。

关键词:文件事件时间事件


钝悟...大约 3 分钟数据库KV数据库Redis数据库KV数据库Redis
Redis 管道

Redis 管道

关键词:Pipeline

Pipeline 简介

Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。通常情况下,一个 Redis 命令的请求、响应遵循以下步骤:

  • 客户端向服务端发送一个查询请求,并监听 Socket 返回(通常是以阻塞模式,等待服务端响应)。
  • 服务端处理命令,并将结果返回给客户端。

显然,如果每个 Redis 命令都发起一次请求、响应,会很低效。因此,Redis 客户端提供了一种批量处理技术,即


钝悟...大约 3 分钟数据库KV数据库Redis数据库KV数据库RedisPipeline
Redis 发布订阅

Redis 发布订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。

Redis 有两种发布订阅模式

  • 基于频道(Channel)的发布订阅
  • 基于模式(Pattern)的发布订阅

关键词:订阅SUBSCRIBEPSUBSCRIBEPUBLISH观察者模式


钝悟...大约 3 分钟数据库KV数据库Redis数据库KV数据库Redis订阅观察者模式
Redis 数据结构

Redis 数据结构

关键词:对象SDS链表字典跳表整数集合压缩列表

SDS

SDS 简介

SDS 是 Simple Dynamic String 的缩写,即简单动态字符串。Redis 为 SDS 做了一些优化,以替代 C 字符串来表示字符串内容。此外,SDS 还被 Redis 用作缓冲区(buffer),如:AOF 模块中的 AOF 缓冲区;客户端状态中的输入缓冲区。


钝悟...大约 29 分钟数据库KV数据库Redis数据库KV数据库Redis数据结构链表字典跳表
Redis 过期删除和内存淘汰

Redis 过期删除和内存淘汰

关键词:定时删除惰性删除定期删除LRULFU

Redis 过期删除

Redis 可以为每个键设置过期时间,当键过期时,会自动删除该键。

设置键的生存时间或过期时间

Redis 中,和键的生存时间相关的命令如下所示:

命令 描述
EXPIRE 设置 key 的过期时间,单位为秒
PEXPIRE 设置 key 的过期时间,单位为毫秒
EXPIREAT 设置 key 的过期时间为指定的秒级时间戳
PEXPIREAT 设置 key 的过期时间为指定的毫秒级时间戳
TTL 返回 key 的剩余生存时间,单位为秒
PTTL 返回 key 的剩余生存时间,单位为毫秒
PERSIST 移除 key 的过期时间,key 将持久保持

钝悟...大约 8 分钟数据库KV数据库Redis数据库KV数据库RedisLRULFU
Redis 面试

Redis 面试

Redis 简介

什么是 Redis

【问题】

  • 什么是 Redis?
  • Redis 有什么功能和特性?

【解答】

什么是 Redis:

Redis 是一个开源的“内存”数据库。由于,Redis 的读写操作都是在内存中完成,因此其读写速度非常快

  • 高性能 - 由于,Redis 的读写操作都是在内存中完成,因此性能极高。
  • 高并发 - Redis 单机 QPS 能达到 10w+,将近是 Mysql 的 10 倍。

钝悟...大约 36 分钟数据库KV数据库Redis数据库KV数据库Redis面试
Redis 基本数据类型

Redis 基本数据类型

关键词:StringHashListSetZset

Redis 提供了多种数据类型,每种数据类型有丰富的命令支持。

Redis 支持的基本数据类型:STRING、HASH、LIST、SET、ZSET

Redis 支持的高级数据类型:BitMap、HyperLogLog、GEO、Stream

使用 Redis ,不仅要了解其数据类型的特性,还需要根据业务场景,灵活的、高效的使用其数据类型来建模。


钝悟...大约 34 分钟数据库KV数据库Redis数据库KV数据库Redis数据类型
Redis 高级数据类型

Redis 高级数据类型

关键词:BitMapHyperLogLogGeoStream

Redis 支持的高级数据类型:BitMap、HyperLogLog、GEO、Stream

使用 Redis ,不仅要了解其数据类型的特性,还需要根据业务场景,灵活的、高效的使用其数据类型来建模。

BitMap

BitMap 简介

Bitmap,即位图,是一串连续的二进制数组(0 和 1),可以通过偏移量(offset)定位元素。由于 bit 是计算机中最小的单位,使用它进行储存将非常节省空间,特别适合一些数据量大且使用二值统计的场景。例如在一个系统中,不同的用户使用单调递增的用户 ID 表示。40 亿($$2^{32}$$ = $$410241024*1024$$ ≈ 40 亿)用户只需要 512M 内存就能记住某种状态,例如用户是否已登录。


钝悟...大约 24 分钟数据库KV数据库Redis数据库KV数据库Redis数据类型
Redis 持久化

Redis 持久化

Redis 是内存型数据库,为了保证数据在宕机后不会丢失,需要将内存中的数据持久化到硬盘上。

Redis 支持两种持久化方式:RDB 和 AOF。这两种持久化方式既可以同时使用,也可以单独使用。

关键词:RDBAOFSAVEBGSAVEappendfsync

RDB 快照


钝悟...大约 17 分钟数据库KV数据库Redis数据库KV数据库Redis持久化CoW
Redis 复制

Redis 复制

在 Redis 中,可以通过执行 SLAVEOF 命令或设置 slaveof 选项,让一个服务器去复制(replicate)另一个服务器,其中,后者叫主服务器(master),前者叫从服务器(slave)。

Redis 2.8 以前的复制不能高效处理断线后重复制的情况,而 Redis 2.8 新添的部分重同步可以解决这个问题。

关键词:SLAVEOFSYNCPSYNC命令传播心跳


钝悟...大约 12 分钟数据库KV数据库Redis数据库KV数据库Redis复制
2