分类目录归档:数据存储

Redis延迟监控框架详解

Redis经常在一些要求非常苛刻的情况中使用,它的每个实例每秒钟都会处理大量的查询请求。与此同时,平均响应时间和最坏情况延时对于延迟时间的要求非常严格。

虽然Redis是一种内存系统,但是它会以不同的方式处理操作系统,例如,在将数据持久化至磁盘中时。除此之外,Redis还实现了一组丰富的命令。某些命令运行速度很快,时间复杂度为O(1)或O(logN);其他命令运行速度较慢,时间复杂度为O(N),它们可能会导致延迟飙升。

继续阅读Redis延迟监控框架详解

Redis性能测试工具redis-benchmark使用详解

Redis包含一个名为redis-benchmark的性能测试工具,它可以模拟N个客户端同时向Redis发送M条查询命令的应用场景(这个工具类似于Apache的ab工具)。在下文中,我们会在Linux主机中运行一次基准测试,然后你可以查看完整的测试输出结果。

redis-benchmark工具的使用方法如下所示:

  1. redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]

继续阅读Redis性能测试工具redis-benchmark使用详解

Redis的数据持久化功能详解(3)—— AOF持久化实践

AOF持久化会记录Redis服务器收到的每个写入操作,当Redis服务器重新启动时,这些写入操作就会被重新执行,这样便能重新建立原先的数据集。默认存储在Redis安装目录的data子目录中的appendonly.aof文件中。

一、环境描述

  1. 主机配置
    CPU:单核 继续阅读Redis的数据持久化功能详解(3)—— AOF持久化实践

如何使Redis能够在运行时获取和修改AOF文件名

最近通过编译源码的方式安装Redis服务器(版本:redis-3.2.1.tar.gz),我发现Redis客户端的config getconfig set命令并没有为appendfilename配置项提供支持,也就无法在Redis运行时获取和设置AOF文件的名称。

本文将会描述如何修改config.c源文件,添加相应的支持代码,使上述两个命令支持appendfilename配置项。

Step-1 打开config.c源文件

继续阅读如何使Redis能够在运行时获取和修改AOF文件名

Redis的数据持久化功能详解(2)—— RDB持久化实践

RDB持久化是通过快照完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储到磁盘上。默认存储在Redis安装目录的data子目录的dump.rdb文件中。

一、环境描述

  1. 主机配置
    CPU:单核
    内存:2 GB
    IP:10.24.16.87

  2. 继续阅读Redis的数据持久化功能详解(2)—— RDB持久化实践

Redis的数据持久化功能详解(1)—— 两种持久化方式

Redis提供了几种数据持久化选项:

  • 根据指定的时间间隔,RDB(Redis DataBase,Redis数据库)持久化会为你的数据集创建时间点快照。

  • AOF(Append-Only File,只增文件)持久化会记录Redis服务器收到的每个写入操作,当Redis服务器重新启动时,这些写入操作就会被重新执行,这样便能重新建立原始数据集。Redis会以一种只增的方式,将收到的写入命令记录在AOF文件之中,存储的数据格式和Redis协议自身的格式相同。当AOF文件变得太大时,Redis会在后台重写日志文件。

  • 继续阅读Redis的数据持久化功能详解(1)—— 两种持久化方式

Redis的LRU缓存用法详解

如果你将Redis作为一种缓存使用,那么当你添加新的数据时,有时候可以让Redis自动释放旧数据占用的内存,这是一个非常方便的功能。这种行为在开发者社区中是众所周知的,因为广为流行的memcached系统的默认行为也是这样的。

LRU实际上只是受支持的内存回收方法之一。本文主要涵盖Redis的maxmemory配置指令的使用方法,这个配置指令能够将Redis的内存使用量限制为一个固定的总量。除此之外,本文还较为深入地介绍了Redis使用的LRU算法,这个算法实际上是理想LRU的一种近似算法。

一、maxmemory配置指令

继续阅读Redis的LRU缓存用法详解

如何监控Redis的工作状态——INFO命令详解

INFO命令会返回Redis服务器的状态信息和统计数据,计算机可以很简单地解析这些返回数据,用户也可以轻松地阅读这些返回数据。

可以通过以下的可选参数,选择查看特定分段的服务器信息:

  • server:Redis服务器相关的通用信息
  • clients:客户端连接的相关信息
  • memory:内存消耗的相关信息
  • persistence:RDB(Redis DataBase)和AOF(Append-Only File)的相关信息
  • stats:通用统计数据
  • replication:主/从复制的相关信息
  • cpu:CPU消耗的统计数据
  • commandstats:Redis命令的统计数据
  • cluster:Redis集群的相关信息
  • keyspace:数据库相关的统计数据

继续阅读如何监控Redis的工作状态——INFO命令详解

Redis的请求/响应协议和往返时间详解

Redis是一种采用客户端-服务器(C/S)模型的TCP服务器,这种模型也被称作请求/响应协议。

这就意味着,一个请求通常需要经过以下步骤才能完成:

  • 客户端会向服务器发送一个查询请求,然后从套接字(socket)读取服务器的响应数据,通常以一种阻塞的方式。

  • 服务器会处理请求的命令,然后将响应数据发送回客户端。

继续阅读Redis的请求/响应协议和往返时间详解