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的请求/响应协议和往返时间详解

Redis的发布/订阅工作模式详解

Redis的SUBSCRIBEUNSUBSCRIBEPUBLISH命令实现了消息的发布/订阅功能。发送者(消息发布者)不需要编程,就能够向特定的接收者(消息订阅者)发送消息了。Redis会将已发布的消息放入指定的频道之中,消息发布者不需要知道具体有哪些消息订阅者。订阅者可能会订阅一个或多个频道,并且只能接收已订阅频道中的消息,它们也不需要知道具体有哪些消息发布者。这种方式能够充分解耦发布者和订阅者之间的关系,也使得网络拓扑具有更好的伸缩性和动态性。

继续阅读Redis的发布/订阅工作模式详解