![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 87
中间件小哥
中间件技术、IT咨询的快递小哥
展开
-
Redis 7.0 新功能新特性总览
近日,Redis 开源社区发布了7.0的两个预览版。在这两个预览版中,有很多Redis 7.0中新增加的特性,新增加的命令或已有命令的新加参数,一些性能上的优化和提高,还有一些API的改变,并且修复了以前版本中的一些bug,下面让我们具体来看一下这些方面的内容。翻译 2022-03-04 14:31:15 · 1391 阅读 · 1 评论 -
DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0
本文分享自华为云社区《DCS 社区版 Redis6.0 技术大揭秘》,作者:叮叮当当的猫。自从Redis进入6.0版本之后,新特性和功能改进每月都有新变化,升级速度简直是开挂上天啦!并且,对于 6.0 版本,Redis 之父 Antirez 在 RC1 版本发布时(2019-12-19)在他的博客上连续用了几个“EST”词语来评价:这个版本提供了诸多令人心动的新特性及功能改进,比如新网络协议 RESP3,新的集群代理,ACL 等,其中关注度最高的应该是“多线程”了。华为云DCS也第一时间启.转载 2021-09-16 08:57:25 · 80 阅读 · 0 评论 -
Redis 6多线程I/O vs Elasticache vs KeyDB
翻译自:https://docs.keydb.dev/blog/2020/04/15/blog-post/随着Redis 6多线程I/O的出现,该博客比较了Elasticache,KeyDB和Redis 6.0的单节点性能。我们将研究不同负载和不同工具下的吞吐量和时延。背景介绍KeyDB大约是在一年前作为Redis的分支引入的,通过多线程实现显著的性能提升。不久之后,亚马逊宣布了含有增强io处理Redis内核的Elasticache。Redis最近也发布了支持多线程io的6.0版。与Redis6翻译 2021-09-16 02:39:47 · 728 阅读 · 0 评论 -
KeyDB中的子key过期
来源:https://docs.keydb.dev/blog/2021/06/08/blog-post/在Redis社区有一个很早就提出来的功能:让SET和HASH数据类型的子成员有自己的过期时间。Redis没有接受该需求,可能是考虑到在没有内置命令的情况下实现该功能比较困难,但KeyDB(Redis的一个分支)专注于提供易于使用的高性能Redis,所以实现了该功能。KeyDB添加子key过期的最初尝试是对每个expire都添加一个用于子key过期的vector,但这会导致某些性能问题。我们接下来将翻译 2021-09-16 02:33:12 · 261 阅读 · 0 评论 -
Redis STRALGO LCS命令与实现
作者: Wen Hui转载:中间件小哥在 Redis 6.0-rc4版本的reiease中,我们看到 Redis支持一个新命令及其子命令: STRALO LCS, LCS是longest common subsequence(最长公共子序列)的缩写,其定义是:一个数列{\displaystyle S},如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则{\displaystyle S}称为已知序列的最长公共子序列。例如x = [A,,B,C,B,D,A,B], y = [B,D转载 2020-10-28 03:11:12 · 426 阅读 · 0 评论 -
RedisConf 2020 之硬件级Redis数据加密
来源:RedisConf 2020 organized by Redis Labs and https://www.anjuna.io/redis-solution翻译:Wen Hui转载:中间件小哥为什么需要硬件级别的安全技术内部人员已经对企业IT构成了主要威胁。尽管大多数企业已经采取措施来保护IT系统免受最终用户的侵害,但是具有不受限制的访问权限和资格证书的内部人员可能更加危险。黑客也可以让他们的侵入看起来像内部人员所为。由于在软件层面防止IT内部威胁的方法和技术具有严重的局限.翻译 2020-10-27 01:38:11 · 395 阅读 · 0 评论 -
RedisConf2020之Redis客户端缓存
来源:Ben Malec from Paylocity and RedisConf 2020 organized by Redis Labs翻译:Wen Hui转载:中间件小哥这篇文章中我们介绍如何使用Redis 6中关于客户端缓存的支持来设计我们的客户端缓存机制。我们首先来看一个典型的web应用如下:在loadbalancer后面我们有多个web服务器,并与相同的SQL数据库相连接。另外,在每个web服务器中,我们有多个服务器端缓存用来在服务器端缓存SQL数据库中的数据。我们.翻译 2020-10-27 00:56:00 · 191 阅读 · 0 评论 -
Redis Conf 2020之提高Redis访问速度最佳实践
来源:Zohaib Sibte Hassan from Doordash and RedisConf 2020 (redisconf.com/) organized by Redis Labs (redislabs.com)翻译:Wen Hui转载:中间件小哥1. Cache stampede问题:Cache stampede问题又叫做cache miss storm,是指在高并发场景中,缓存同时失效导致大量请求透过缓存同时访问数据库的问题。如上图所示:服务器a,b 访问数据的前翻译 2020-10-19 21:51:12 · 596 阅读 · 0 评论 -
Redis 6客户端追踪简介
作者:Wen Hui转载:中间件小哥客户端追踪是Redis 6中引入的新概念。这个特性主要辅助客户端在Redis服务端键值被其他客户端更新后,能及时通知客户端将缓存过的键值逐出并更新。从而减少或避免数据一致性带来的问题。目前的客户端追踪包含以下模式:1)普通追踪模式命令:CLIENT TRACKING ON特点:1.当客户端开启追踪时,服务器端保存一个无效表(Invalidation Table)来记录所有相应客户端读取过的键的信息。2.当相应的键被更改时,向相应的客户端发送缓存转载 2020-10-19 21:45:41 · 191 阅读 · 0 评论 -
RedisConf 2020之Keynotes
来源:RedisConf 2020 (https://redisconf.com/) organized by Redis Labs (https://redislabs.com/)翻译:Wen Hui转载:中间件小哥一年一度的RedisConf大会今年因为新冠疫情改成了线上的形式,以前需要额外注册的培训部分这次也可以在网上观看视频了。今年RedisConf的最大亮点当然是Redis 6.0的正式发布了。不过Redis 6.0 RC版本去年底就发布了,而且6.0里好几个重要特性(多线程IO、RE翻译 2020-09-30 00:35:53 · 137 阅读 · 0 评论 -
Redis 6.0 TLS支持
原文:https://redis.io/topics/encryption翻译:Wen Hui转载:中间件小哥Redis从版本6开始支持SSL / TLS,这是一项可选功能,需要在编译时启用。编译要使用TLS支持进行构建,你需要OpenSSL开发库(例如Debian / Ubuntu上的libssl-dev)。运行make BUILD_TLS = yes。验证要使用TLS运行Redis测试套件,你需要TCL的TLS支持(即Debian / Ubuntu上的tcl-..翻译 2020-09-29 05:40:54 · 1636 阅读 · 0 评论 -
Redis 6.0 客户端缓存的服务器端实现
原文:https://redis.io/topics/client-side-caching翻译:Wen Hui转载:中间件小哥客户端缓存是用于提供高性能服务的一项技术。它使用应用服务器节点(通常情况下和数据库服务器使用不同的物理机)的可用内存,用来在应用端直接存储一部分数据库信息。正常情况下当客户端请求应用服务器一些数据时,应用服务器会请求数据库这些信息,如下图所示:当使用客户端缓存时,应用服务器端会存储经常访问的数据请求,以便在下次客户端请求过程中重用之前的数据库查询回复,而无需翻译 2020-09-29 05:34:18 · 399 阅读 · 0 评论 -
Redis Sentinel 源码分析 - Sentinel的初始化
作者:Wen Hui转载:中间件小哥Redis Sentinel 是Redis提供的高可用模型解决方案。Sentinel可以自动监测一个或多个Redis主备实例,并在主实例宕机的情况下自动实行主备倒换。本系列通过作者对Redis Sentinel源码的理解,详细说明Sentinel的代码实现方式。Sentinel使用Redis内核相同的事件驱动代码框架, 但Sentinel有自己独特的初始化步骤。在这篇文章里,作者会介绍Sentinel与Redis服务器不同的初始化部分。我们可以通过redi转载 2020-09-25 12:17:13 · 180 阅读 · 0 评论 -
Redis Sentinel 源码分析 - Sentinel 选举机制和主备倒换
作者:Wen Hui转载:中间件小哥Sentinel 的选举机制在上面的文章我们提到过,Sentinel在主备倒换的过程中会使用is-master-down-by-addr命令来与其他Sentinel进行通信以取得其他Sentinel的投票。每个Sentinel实例都有被选举成领头Sentinel的机会,领头Sentinel会主导整个主节点下线进行主备倒换的过程。如上面代码所示,当Sentinel在主备倒换开始的时候会使用is-master-down-by-addr命令附上自己的运行Id转载 2020-09-25 12:11:34 · 433 阅读 · 0 评论 -
Redis Sentinel 源码分析 - Sentinel 网络连接和Tilt模式
作者:Wen Hui转载:中间件小哥在上一篇文章中我们介绍了Sentinel的初始化和主循环,这一篇我们介绍Sentinel的网络连接以及tilt模式。Sentinel的网络连接在前面的文章曾经提到每个Sentinel实例会维护与所监测的主从实例的两个连接,分别是命令连接(Command Connection)和发布订阅连接(Pub/Sub Connection)。但是需要注意的是,Sentinel和其他Sentinel之间只有一个命令连接。下面将分别介绍命令连接和发布订阅连接的作用。.转载 2020-09-25 12:00:14 · 209 阅读 · 0 评论 -
Redis Sentinel 源码分析 - Sentinel 的主时间事件函数
作者:Wen Hui转载:中间件小哥Sentinel 使用和Redis服务器相同的事件处理机制:分为文件事件和时间事件。文件事件处理机制使用I/O 多路复用来处理服务器端的网络I/O 请求,例如客户端连接,读写等操作。时间处理机制则在主循环中周期性调用时间函数来处理定时操作,例如服务器端的维护,定时更新,删除等操作。Redis服务器主时间函数是在server.c中定义的serverCron函数,在默认情况下,serverCron会每100ms被调用一次。在这个函数中,我们看到如下代码:其中当转载 2020-09-25 11:56:19 · 88 阅读 · 0 评论 -
为什么 Redis 6 只支持 RESP3 ?
作者:antirez翻译:Kevin (公众号:中间件小哥)Redis 5 发布几周后,我开始着手实现 RESP3,经过几天的工作,可以实现这一目标了。 RESP3 是 Redis 将从 Redis 6 开始使用的新的客户端-服务器协议,https://github.com/antirez/resp3 上的规范清楚地说明我们旧协议 RESP2 的这种演进可以如何改进 Redis 生态...翻译 2020-01-14 14:35:35 · 376 阅读 · 0 评论 -
多模块进行时:同时使用 RedisGraph 和 RediSearch 模块
来源:Redislabs作者:Kyle Davis翻译:Kevin (公众号:中间件小哥)在 2019 年的 RedisConf 会议上,我演示了一个在 RedisGraph 节点上进行全文 RediSearch的解决方案。当时讲的有点模糊,但现在,我意识到我们应该解释一下我们是如何做到这一点并发布源代码。在这个演示中我展示了一个小界面,它支持搜索动物并通过生物分...翻译 2020-01-14 14:33:51 · 408 阅读 · 0 评论 -
利用 Redis 来优化功能部署和错误分类
来源:Redislabs作者:Shabih Syed翻译:Kevin(公众号:中间件小哥)为了让系统运行更流畅,又避免 Knights Capital 在 2012 年犯下的 4.6 亿美元的错误,一家领先的金融市场制造商的单日计算机系统故障给 IT 社区提供了一些教训,包括系统组件的设计、实现,和DevOps 的重要性。在这个由两部分组成的博客中,我将分享一些想法,以帮助开发...翻译 2019-12-18 09:27:19 · 148 阅读 · 0 评论 -
作为一个纯粹数据结构的 Redis Streams
来源:antirez翻译:Kevin (公众号:中间件小哥)Redis 5 中引入了一个名为 Streams 的新的 Redis 数据结构,吸引了社区极大的兴趣。接下来,我会在社区里进行调查,同用户们谈谈他们在实际生产中的使用场景,然后写个博客记录一下。今天我想解决另一个问题:我有点怀疑许多用户仅仅把Streams 作为解决类似 Kafka 所要解决的问题的一个手段。实际上,这个...翻译 2019-11-30 16:26:16 · 218 阅读 · 0 评论 -
Redis 4.0鲜为人知的功能将加速您的应用程序
来源:Redislabs作者:Kyle Davis翻译:Kevin(公众号:中间件小哥)Redis 4.0给Redis生态带来了一个惊人的功能:Modules(模块)。Modules是Redis的一大转变,它是Redis内部自定义数据类型和全速计算的开放环境。但是,尽管对该版本的大多数关注都集中在Modules上,但新版本还引入了一个非常重要的命令,它就是游戏规则的改变者:UNLIN...翻译 2019-11-26 20:34:49 · 141 阅读 · 0 评论 -
Redis Streams与Spark的完美结合
来源:Redislabs作者:Roshan Kumar翻译:Kevin(公众号:中间件小哥)最近,我有幸在 Spark +AI 峰会上发表了题目为“Redis + Structured Streaming:扩展您的持续应用的完美组合”的演讲。我对这个主题的兴趣是由 Apache Spark 和 Redis 在过去几个月中引入的新功能引起的。根据我之前使用 Apache Spar...翻译 2019-10-17 17:35:58 · 217 阅读 · 0 评论 -
选择高性能NoSQL数据库的5个步骤
来源:Redislabs作者:Shabih Syed翻译:Kevin(公众号:中间件小哥)构建在线和运营应用程序的开发团队越来越多地选择一类新的数据库来支持它们。它被称为“NoSQL”或“Not Only SQL”,包括Redis,MongoDB等非SQL数据库。从可用的NoSQL解决方案中选择正确的数据库,是您在设计新应用程序时可以做出的最重要决策之一。因此,如果您正在评估No...翻译 2019-10-16 17:08:14 · 202 阅读 · 0 评论 -
如何将 Redis 用于微服务通信的事件存储
来源:Redislabs作者:Martin Forstner翻译:Kevin (公众号:中间件小哥)以我的经验,将某些应用拆分成更小的、松耦合的、可协同工作的独立逻辑业务服务会更易于构建和维护。这些服务(也被称为微服务)各自管理自己的技术栈,因此很容易独立于其他服务进行开发和部署。前人已经总结了很多关于使用这种架构设计的好处,在此我就不再赘述了。关于这种设计,有一个方面我一直在重点关注,...翻译 2019-10-15 17:26:46 · 253 阅读 · 0 评论 -
让你的AI模型尽可能的靠近数据源
来源:Redislabs作者:Pieter Cailliau、LucaAntiga翻译:Kevin简介今天我们发布了一个 RedisAI 的预览版本,预集成了[tensor]werk组件。RedisAI 是一个可以服务 tensors 任务和执行深度学习任务的 Redis 模块。在这篇博客中,我们将介绍这个新模块的功能,并解释我们为什么会认为它能颠覆机器学习(ML)、深度学习(DL)...翻译 2019-09-20 16:04:09 · 216 阅读 · 0 评论