Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)

redis:用于节点的Redis客户端,支持resp3和redis6 卡玛洛·雷迪斯(Camaro Redis) 用于节点的Redis客户端,支持resp2 / 3,redis6和redis的所有命令。 特征 第一个支持redis客户端。 所有的redis命令都支持。 所有命令结果均返回promise。 支持ES6类型,例如Map和Set。 快速开始 安装 npm install @camaro/redis 用法 // If you want to use resp2 ,change `ClientV3` to `ClientV2`. const { ClientV3 : Client } = require ( '@camaro/redis' ) const client = new Client ( ) ; client . SET ( 'foo' , 'foo' ) . then ( ( ) => { return client . GE 立即下载

Redis6引入新的RESP3协议,并以此为基础加入了客户端缓存的新特性,在此特性下,大大提高了应用程序的响应速度,并降低了数据库的压力,本篇就带大家来看一下Redis6的新特性:客户端缓存。


目录

什么是客户端缓存

什么是RESP3

客户端缓存的实现方式

默认模式

原理 

应用

广播模式

原理

应用

重定向模式

OPTIN 和 OPTOUT

NOLOOP选项

失效表key上限


Redis6系列文章:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

Redis系列(三)、数据类型之哈希Hash

Redis系列(四)、数据类型之列表List

Redis系列(五)、数据类型之无序集合Set

Redis系列(六)、数据类型之有序集合ZSet(sorted_set)

Redis系列(七)、常用key命令

Redis系列(八)、常用服务器命令 

Redis系列(九)、Redis的“事务”及Lua脚本操作

Redis系列(十)、详解Redis持久化方式AOF、RDB以及混合持久化

Redis系列(十一)、Redis6新特性之ACL安全策略(用户权限管理)

Redis系列(十二)、Redis6集群搭建及原理(主从、哨兵、集群)

Redis系列(十三)、pub/sub发布与订阅(对比List和Kafka)

Redis系列(十四)、Redis6新特性之RESP3与客户端缓存(Client side caching)


什么是客户端缓存

客户端缓存是一种用于创建高性能服务的技术,在此技术下,应用程序端将数据库中的数据缓存在应用端的内存中,当应用程序访问数据时直接从本机内存中读取,而无需连接数据库端,减少了网络IO,提升了应用程序的响应速度,同时也减少了数据库端的压力。

官网:https://redis.io/topics/client-side-caching

Why RESP3:http://antirez.com/news/125

没有客户端缓存: 

应用端先查询Redis端,如果没有Redis缓存则到源数据库端查询,如果有则直接从Redis端查询数据,更新数据时直接更新MySQL端并同步至Redis内;

有客户端缓存: 

应用端先查询本地缓存如Guava、Caffeine,若没有本地缓存则访问Redis缓存,如果Redis缓存中也没有则查询源数据库;

客户端缓存的优点:

  1. 降低了客户端的数据延迟,提升客户端的响应速度;
  2. 数据库端接收的查询减少,降低了数据库端的压力,因此在相同的数据集下可以使用更少的节点提供服务;

疑问:

为了实现客户端缓存,我们面临这样的问题,当进程中缓存了数据,而数据库端数据发生变更,该如何通知到进程,避免客户端显示失效的数据呢? 在Redis中可以使用上篇介绍过的发布订阅机制,向客户端发布数据失效的通知,但该模式下即使某些客户端中没有包含过期数据也会向所有客户端发送无效的消息,非常影响数据库的性能。

在之前的版本中,客户端缓存采用缓存槽(caching slot)的方式记录每个客户端内的key是否发生变化以及时同步,最新版中已弃用该方式,而是采用记录key的名称或前缀。 

什么是RESP3

RESP 全称 REdisSerializationProtocol,是 Redis 服务端与客户端之间通信的协议。在Reds6之前的版本,使用的是RESP2协议,数据都是以字符串数组的形式返回给客户端,不管是 list 还是 sorted set。因此客户端需要自行去根据类型进行解析,这样会增加了客户端实现的复杂性。

为了照顾老用户,Redis6在兼容 RESP2 的基础上,开始支持 RESP3,但未来会全面切换到RESP3之上。今天的客户端缓存在基于RESP3才能有更好的实现,可以在同一个连接中运行数据的查询和接收失效消息。而目前在RESP2上实现的客户端缓存,需要两个客户端连接以转发重定向的形式实现,。

在Redis6中我们可以使用HELLO命令在RESP2和RESP3协议之间进行切换:

#使用RESP2协议
HELLO 2
#使用RESP3协议
HELLO 3

客户端缓存的实现方式

Redis客户端缓存被称为Tracking,在RESP3协议下,有两种模式:

默认模式:服务器记录客户端访问了哪些key,当其中的key发生变更时给客户端发送失效信息,消耗服务器端内存;

广播模式:客户端订阅访问过的key的前缀,当符合模式的key发生变更就会被通知(即使变更的key没有被客户端缓存),服务器端不记录客户端访问的key,因此不会消耗服务器端的内存;

默认模式

原理 

服务器端会记录访问key的客户端列表并维护一个表,这个表被称为失效表(Invalidation Table),如果插入一个新的key,服务器端会给客户端发送失效信息并从客户端踢除该key,避免提供过时数据。

在失效表中不会记录key和客户端内对应指针的映射关系,只会记录key的指针和各客户端ID(每个Redis客户端都有一个唯一ID)的映射关系,当发送完失效信息后,客户端剔除key,服务端从失效表中删除key的指针和客户端ID的映射关系。

在失效表中key的命名空间只有一个,即是说,在db0~db15中相同的key名,在失效表中会记录在同一个命名空间内,即使客户端缓存的是db0内的key,如果db1内的同名key被更新,也会通知客户端剔除db0内的同名key。

客户端缓存的操作就是对key的内存地址进行操作: 

  1. 当开启客户端缓存的客户端从Redis获取数据时,Redis服务端会调用 enableTracking 方法在上面的失效表中记录key和客户端ID的映射关系;
  2. 若key被修改,则Redis服务端会调用 trackingInvalidateKey 函数根据该key被缓存的客户端列表ID调用 sendTrackingMessage 函数向它们发送失效消息。(发送失效消息前会检查客户端的Client_Tracking和NOLOOP状态)
  3. 服务端发送完失效消息后会从失效表中将该key与客户端ID的映射关系删除;
  4. 由于客户端可能会在开启之后关闭了缓存功能,在失效表中删除key和该客户端ID之间的映射关系比较消耗性能,因此服务端采用懒删除的方式,只是将该客户端的Client_Tracking相关标志位删除;

应用

上面提到我们可以使用HELLO命令切换RESP3协议,在此协议下我们使用tracking命令开启track追踪,此时服务端会记录客户端在连接的生命周期内的只读的key,当客户端开启track追踪后,key的数据会被缓存在客户端内存中:

#开启RESP3协议
HELLO 3

#开启tracking 客户端缓存
client tracking on

#关闭tracking 客户端缓存
client tracking off

为了演示失效消息的通知,这里使用telnet测试客户端缓存,然后在另一个redis-cli对key做操作:

#使用telnet连接客户端
telnet wykd 6379

#auth命令登录服务器(如果没有密码可以忽略)
auth default wyk123456

#开启RESP3
hello 3

#开启客户端缓存 tracking
client tracking on

#查询一个key 同时该key会被缓存
get name

#在另一个redis客户端中 修改/删除/过期/淘汰 该key
set name new_values

#在telnet窗口会收到key失效的消息如下:
get name   #客户端缓存key
$3
wyk

>2         #失效消息
$10
invalidate
*1
$4
name

#关闭客户端缓存 tracking,关闭后不会再收到key的失效消息
client tracking off

当开启了tracking后,客户端缓存的key如果在别处被修改为与原值一样,也会收到失效消息;

当客户端缓存失效后,该key再被修改时,客户端不会再收到消息,也就是再查询该key之后 才会在客户端缓存key的值;

当客户端缓存的key因过期策略或内存淘汰策略被驱逐时,服务端也会发送失效消息给开启了tracking的客户端:

当开启了tracking的客户端获取的key不存在时,如果在另一个客户端新增/修改了该key,那个tracking的客户端也会收到失效消息,可见如果key不存在也会在客户端缓存中缓存空值,这种结果因人而异,个人认为这样不太好,一是客户端会徒增大量的无用缓存,二是服务端的失效表会维护更多的key->clientID的映射关系。

广播模式

原理

另一个客户端缓存的实现方式是广播模式(broadcasting),广播不会消耗服务端的内存,而是向各客户端发送更多的失效消息。广播模式与默认模式类似,不同的是广播模式下维护的是前缀表,在前缀表中存储客户端订阅的key前缀与客户端ID之间的映射关系。

在这种模式下,有以下的主要行为:

  1. 客户端使用 BCAST 选项开启客户端缓存的广播模式,并使用 PREFIX 指定一个或多个前缀。如果不指定前缀则默认客户端接收所有的key的失效消息,如果指定则只会接收匹配该前缀的key的失效消息;
  2. 在广播模式下,服务端维护的不是失效表,而是前缀表(Prefix Table),每个前缀映射一些客户端ID;
  3. 每次修改跟任意前缀匹配的键时,所有订阅该前缀的客户端都将收到失效消息;
  4. 服务端的CPU消耗与订阅的key前缀数量成正比,订阅的key前缀数量越多服务器端压力越大;
  5. 服务器可以为订阅特定前缀的客户端创建单个回复,并向所有的客户端发送相同的回复来进行优化,有助于降低CPU使用率。

应用

同样,在广播模式下也需要开启RESP3协议,这里我们仍然使用刚才的telnet会话进行演示。

使用下面的命令开启广播模式的客户端缓存,上面提到广播模式下服务端维护一个前缀表,记录key的前缀和客户端id的映射关系,因此我们也可以在客户端指定需要接收失效消息的key前缀:

#telnet访问redis客户端(略)
#开启RESP3
hello 3

#开启广播模式的客户端缓存tracking,默认会收到所有的key的失效信息
client tracking on bcast

#开启广播模式的客户端缓存tracking,只接受指定前缀'wyk'的key的失效信息
client tracking on bcast prefix wyk

广播模式下,只要符合客户端设置的key前缀的key发生新增、修改、删除、过期、淘汰等动作,即使该key没有被该客户端缓存,也会收到key的失效消息;

重定向模式

为了兼容RESP2协议,在Redis6中客户端缓存可以以重定向(Redirect)的方式实现,不再使用 RESP3 原生支持的PUSH消息,而是将消息通过 Pub/Sub 通知给另外一个客户端连接:

#查看客户端id
client id

#用于接收失效消息的客户端订阅频道
subscribe _redis_:invalidate

#客户端开启Tracking客户端缓存 并指定需要接收失效消息的客户端ID
client tracking on bcast redirect receive_client_id

OPTIN 和 OPTOUT

在默认模式或重定向模式下,我们可以有选择的对需要的key进行缓存,而由于广播模式是匹配key前缀,因此不能使用此命令。

#RESP3 默认模式
#切换RESP3协议
hello 3
#开启客户端缓存optin选项
client tracking on optin
#此命令后面第一个只读key会被缓存
client caching yes


#RESP2 重定向模式
hello 2
#开启客户端缓存optin选项,1234是接收失效消息的客户端id
client tracking on REDIRECT 1234 OPTIN  
#此命令后面第一个只读key会被缓存
client caching yes

OPTIN : 只有执行client caching yes之后的第一个key才会被缓存;

OPTOUT : 与OPTIN相反,执行client caching no之后的第一个只读key不会被缓存;

注意:在redis6.0.3版本中outin和optout选项时灵时不灵,可能还有BUG;

NOLOOP选项

我们的客户端修改自己已缓存的key的时候也会收到这个key的过期信息,事实上这个客户端是不需要收到该消息的,这造成了浪费,因此我们可以使用NOLOOP选项将该客户端设置为:本客户端修改的key不会收到相关的失效信息。

#开启客户端缓存的NOLOOP选项
client tracking on noloop

开启noloop选项的客户端,如果在该客户端上修改它已经缓存的key,自己不会收到该key的失效消息:

没开启noloop选项的客户端,如果在该客户端上修改它已经缓存的key,自己也会收到该key的失效消息:

失效表key上限

可以使用 tracking_table_max_keys参数修改服务端失效表内记录的缓存的key的数量,当失效表内记录的缓存key达到配置的数量时会随机从失效表内移除缓存:

#查询最大缓存的数量
config get tracking-table-max-keys

#设置最大缓存数量为300
config set tracking-table-max-keys 300

 

参考文章:

Redis server-assisted client side caching 

Why RESP3 will be the only protocol supported by Redis 6

Redis客户端缓存设计(In-Process caching)

带你100% 地了解 Redis 6.0 的客户端缓存

 

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

RESP3:RESP协议V3存储库。 包含规范以及其他相关资源 这是RESP协议版本3的存储库。 RESP(REdis序列化协议)是数据库中使用的协议,但是该协议旨在供其他项目使用。 使用协议的第3版(当前尚在设计中),该协议旨在对希望实现简单,高效且具有很大范围的客户端库实现的协议的其他系统变得更加有用。 在这里,您可以找到。 将来,此存储库可能会添加其他资源,例如RESP的示例实现或其他资源。 立即下载

相关推荐

Mplus实战:如何用潜在类别分析(LCA)快速搞定心理学数据分类?

本文详细介绍了如何运用Mplus软件进行潜在类别分析(LCA),以快速处理心理学数据并识别内部异质性群体。文章从数据准备、Mplus语法编写、模型拟合与选择,到结果解读与高级应用(如纳入协变量),提供了完整的实战指南,帮助研究者从变量视角转向个体视角,有效挖掘数据中的潜在子类别。

weixin_28318011的博客 410

Redis 6.0新特性----RESP3协议

RESP3协议概述 RESP3是RESP v2的更新版本,RESP v2是Redis中使用的协议,大约从版本2.0开始(1.2已经支持它,但是Redis 2.0是第一个只讨论这个协议的版本)。此协议的名称只是RESP3,而不是respv3或RESP3.0。 该协议用于处理客户机和服务器之间的请求-响应通信,其中客户机执行某种请求,服务器用一些数据进行回复。该协议特别适合于数据库,因为它能够返回复杂的数据类型和相关的信息来扩充返回的数据(例如给定信息的流行度指数)。 RESP3协议可以不对称地使用,就像在Re

ZEEKLING 2742

RPA实战:手把手教你打造抖音自动养号机器人(含避坑指南)

本文详细介绍了如何利用RPA技术从零构建一个智能化的抖音自动养号机器人。内容涵盖环境准备、核心工具选型、拟人化行为流程设计、代码实现模块拆解,并提供了关键的避坑指南与风控对抗策略,帮助开发者高效、稳定地实现账号自动化运营。

orange的博客 561

Redis6通信协议升级至RESP3,一口气看完13种新数据类型

我们已经知道RESP V2版本协议的规范,RESP的全程是Redis Serialization Protocol,基于这个实现简单且解析性能优秀的通信协议,Redis的服务端与客户端可以通过底层命令的方式进行数据的通信。随着Redis版本的不断更新以及功能迭代,RESP V2协议开始渐渐无法满足新的需求,为了适配在Redis6.0中出现的一些新功能,在它的基础上发展出了...

Java笔记虾 691

vcenter server6.0上vmware inventory 、virtualvcenter等服务无法开启

描述:一天,vcenter访问不了,因此Windows远程到vcenter server上。相关服务未开启,开启virtualCenter server服务提示相关依赖服务未开启,于是开启依赖项服务Inventory服务报错。然后打算使用 C:\Program Files\VMware\vCenter Server\bin\servcivce-control来开启vmware服务 1....

Pespi_Co1a的博客 3069

手把手教你用运放搭建方波三角波发生器(附Multisim仿真文件)

本文详细解析了使用运算放大器搭建方波和三角波发生器的核心原理与设计步骤。通过剖析迟滞比较器与积分器的联动机制,指导读者进行电路设计、元件选型,并借助Multisim仿真进行参数调优与波形优化。文章提供了从理论分析、虚拟仿真到实物焊接调试的完整实践指南,并附有仿真文件,帮助硬件爱好者与初学者深入掌握这一经典模拟电路设计。

weixin_29165725的博客 640

Redis系列-基础篇

Redis系列-基础篇Redis是什么?Redis的优势(为什么要用Redis?)核心特性(Redis为什么这么快?)1) 基于内存实现,读写速度快2) 采用高效底层数据结构3) 单线程操作,使用IO多路复用4) 简单的自定义网络通信协议5) 虚拟内存机制 VM常用结构StringListHashSetZset(Sorted Set)高阶用法BitmapHyperLogLogGeospatialpub/subPipelineLua事务Redis6.0 特性参考加感谢 作为搞了几年的技术小草,想写点东西,总

疯狂小草的博客 827

三极管稳压电路仿真分析

Z1的负极连接到三极管的基极,三极管发射极E是输出,形成了一个射极跟随器,也就是说,E极的电压随着B电压变化而变化,但BE之间有一个压降,一般硅管0.7V左右,假设B极是6.7V,那E极就是6.7-0.7=6V,所以就有一个公式VOUT=Vz-Vbe,可以根据VOUT来选择合适的稳压管。从稳压管的SPEC中我们可以看到,Vz@Izt这个参数,指在Izt=20mA时,稳压管的稳压值Vz=5.1V,也就是说流过稳压管的电流在20mA以上,稳压效果最佳。三极管导通之后,E点电压会升高,当升高到Vbe。

U_YAO的博客 2325

redis6.0 客户端缓存(Client side caching)及实践

1. 什么是客户端缓存(Client side caching) 通常的缓存会放在应用和DB之间,比如redis。客户端缓存是指在应用服务内部再加一层缓存,也就是内存缓存,从而进一步提升访问速度。 2. redis 6.0为此做了什么 2.1 client cache的问题 client cache的问题是缓存应该何时失效,更确切的说是如何保持与远端数据的一致性。 为client cache设置过期时间是一个选择,但时间设置多久是一个问题。太长会有时效性问题,太短缓存的效果会打折扣。 2.2 redis

未来可7 2597

【YOLOv11多模态融合改进】(可见光+红外)涉及像素级融合、特征级融合(中期、中后期、后期)、决策级融合的完整配置步骤以及二次改进方案

在网络输入阶段将多模态数据直接合并,形成统一的特征表示。

Limiiiing的博客 1968

【华为OD机试真题】18、喊7的次数重排 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。   编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1,但是当将要喊出来的数字是7的倍数或者数字本身含有7的话,不能把这个数字直接喊出来,而是要喊”过”。   假定玩这个游戏的N个人都没有失误地在正确的时机喊了”过”,当喊到数字K时,可以统计每个人喊”过”的次数。   现给定一个长度为N的数组,存储了打乱顺序的每个人喊”过”的次数,请把它还原成正确的顺序,即数组的第i个元素存储编号i的人喊

KJ.JK 4167

node-redis v5 技术指南:RESP3、Client Side Caching 与全新 API 形态

Node Redis v5(`redis` npm 包)带来了以 RESP3 协议支持为核心的一整轮架构升级:更丰富的类型系统与类型映射、基于服务端推送的 Pub/Sub 与 Client Side Caching、类型安全的事务(`execTyped`)、以"代理客户端"取代运行时参数检查的命令选项机制,以及独立成型的连接池 `RedisClientPool`。本篇以仓库 [docs/v5.md

gitblog_00582的博客 388

【仿真技巧】Smart Eye Probe在ADS信号仿真中的应用

Smart_Eye_Probe是一个眼探头,允许灵活数量的输入通道,输入通道支持单端或差分信号的混合,并且,可以使用一个共同的时钟信号触发通道的眼图。目前,仅支持瞬态(Transient)和通道(Channel Sim)逐位模式(Bit by bit)模拟,不支持信道统计(Statistical)模式和DDR总线(DDRSim)仿真。

一只豌豆象的博客 1270

Redis 6 将采用全新协议 RESP3,以提供客户端缓存功能

Redis 创始人兼核心开发者antirez在博客介绍了将在Redis 6 提供的新功能 ——Client side caching(客户端缓存)。 antirez 表示全新的 Redis 协议RESP3将是Redis 6 中最重要的特性,并解释了他为何如此急切地改进 Redis 协议,原因主要有两个,一是因为希望能为客户端提供更多的语义化回复(semantical repli...

寒冰屋的专栏 1485

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Redis 7.2 新特性实战:Client-Side Caching(客户端缓存)如何大幅降低延迟?

Redis 7.2 新特性实战:Client-Side Caching(客户端缓存)如何大幅降低延迟?Redis 7.2的客户端缓存功能通过将数据存储在应用本地内存,并利用Redis服务器的失效通知机制,实现了显著的速度提升。在实际应用中,客户端缓存可以将读取延迟从毫秒级降低到微秒级,提升幅度达10-100倍,同时大幅提高系统吞吐量。

夜雨的博客 1142

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Redis系列(二十)、缓存穿透、击穿、雪崩、预热、更新、降级

Redis是高性能的分布式内存数据库,对于内存数据库经常会出现下面几种情况,也经常会出现在Redis面试题中:缓存穿透、缓存击穿、缓存雪崩、缓存预热、缓存更新、缓存降级。本篇分别介绍这些概念以及处理方案。

王义凯 的博客 6185

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

redis 6.0新特性-客户端缓存学习总结

redis的客户端缓存有两种模式,默认模式会占用redis服务端的内存资源,广播模式会占用redis服务端的CPU资源。默认模式需要注意缓存的key的数量不能太大。广播模式需要注意缓存的key的前缀数量不能太大。(具体性能转折点在哪里需要自行测试)客户端缓存在网络问题导致连接通道断开且未被检测出来的时间段内,应用可能读到过期数据,实时性要求特别高的业务需要注意避免使用或者有兜底方案。

过了这个村没这个老王的博客 1633

memcached客户端_Redis 6.0 客户端缓存特性及实践

Redis 6.0 发布[1]了。Redis 6.0 的新特性也是在一步步的讨论和优化中确定的。很多的特性已经在之前的 RC 等版本中介绍过了。但是正式 GA 版中也有一些新的变化:SSL[2]ACL[3]: 更好,命令支持RESP3[4]Client side caching[5]:重新设计Threaded I/ODiskless replication on replicas[6]Cluste...

weixin_39646405的博客 132

Redis 6.0 除了多线程,别忘了这个牛逼特性!

你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草来源:suo.im/5P1Iq6推荐:https://www.xttbl...

xmt1139057136的专栏 464

node-redis RESP 协议类型映射完全指南:RESP2 / RESP3 到 JavaScript 类型的默认规则与自定义配置

RESP(Redis Serialization Protocol,Redis 序列化协议)是 Redis 与客户端通信所使用的核心协议,node-redis 在底层通过 RESP 编解码器将协议数据解析为 JavaScript 数据类型。本文以仓库文档 [docs/RESP.md](https://link.gitcode.com/i/773e88e1170f7773286d28359ea2d4

gitblog_00033的博客 810

node-redis 完全使用指南:从 `redis` 包安装到客户端缓存、集群与扫描迭代器实战

node-redis 是 Redis 官方为 Node.js 提供的现代高性能客户端,本指南以仓库中的 [redis](https://link.gitcode.com/i/7889cd2d3f093b30854a0bdcfe4639cc) 元包为核心,完整讲解其安装方式、包结构、连接配置、命令调用、事务、阻塞命令、Pub/Sub、客户端缓存、自动流水线、集群与哨兵等全部核心用法。读完本文,你将能

gitblog_00997的博客 1054

带你100% 地了解 Redis 6.0 的客户端缓存

近日 Redis 6.0.0 GA 版本发布,这是 Redis 历史上最大的一次版本更新,包括了客户端缓存 (Client side caching)、ACL、Threaded I/O ...

HollisChuang's Blog 902

5ecsgo正在发送客户端_Python中Redis的服务器辅助客户端缓存

众所周知,计算机科学中只有两个难题:缓存失效和命名。这篇文章,正如你从它的名字中猜到的,是关于第一个问题:缓存失效问题。我写这篇文章是因为Redis 6中的一个新特性使客户端更容易管理本地缓存。这个小项目的源文件可以在rsacsc-py库中找到。前言我不打算强调缓存本身的重要性。实际上,我们在计算机工程的各个方面都在缓存数据,以减少随后访问数据所需的时间。我们使用多级缓存,并将继续这样做,直到有人...

weixin_42526068的博客 315
上一篇: Redis系列(十三)、pub/sub发布与订阅(对比List和Kafka)
下一篇: Redis系列(十五)、Redis6新特性之集群代理(Cluster Proxy)
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

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

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

打赏作者

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

抵扣说明:

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

余额充值