Redis
文章平均质量分 82
zeekling
这个作者很懒,什么都没留下…
展开
-
Redis 6.0新特性----TLS 通道加密
Redis 6实现了通道加密,提高了redis的安全性。Redis作为缓存数据库,里面很有可能缓存重要的敏感信息,所以支持tls通道加密还是很有必要的,当然敏感信息还是建议加密保存。创建证书mkdir -p tests/tlsopenssl genrsa -out tests/tls/ca.key 2048openssl req \ -x509 -new -nodes -sha256 \ -key tests/tls/ca.key \ -days 3650 \ -su原创 2021-08-14 16:26:16 · 2583 阅读 · 0 评论 -
Redis 6.0新特性----RESP3协议
RESP3协议概述RESP3是RESP v2的更新版本,RESP v2是Redis中使用的协议,大约从版本2.0开始(1.2已经支持它,但是Redis 2.0是第一个只讨论这个协议的版本)。此协议的名称只是RESP3,而不是respv3或RESP3.0。该协议用于处理客户机和服务器之间的请求-响应通信,其中客户机执行某种请求,服务器用一些数据进行回复。该协议特别适合于数据库,因为它能够返回复杂的数据类型和相关的信息来扩充返回的数据(例如给定信息的流行度指数)。RESP3协议可以不对称地使用,就像在Re翻译 2021-02-28 18:03:56 · 1892 阅读 · 0 评论 -
Redis 6 客户端缓存
Redis服务器辅助的客户端缓存客户端缓存是一种用于创建高性能服务的技术。它利用应用服务器中的可用内存,这些服务器通常是与数据库节点不同的计算机,以便将数据库信息的某些子集直接存储在应用程序端。通常当需要一些数据时,应用服务器会向数据库询问这些信息,如下图所示:+-------------+ +----------+| | ------- GET user:1234 -------> | |翻译 2021-02-28 14:26:08 · 441 阅读 · 0 评论 -
【Redis源码】Redis 6 ACL源码详解
简介本文主要是讲解Redis 6的ACL的实现原理。基本使用详见:Redis 6.0新特性——ACLs,以及Redis启动过程分析。启动初始化初始化默认用户ACL子模块在Redis启动过程中初始化,下面代码主要是初始化ACL的结构:/* * 初始化ACL子系统 * */void ACLInit(void) { Users = raxNew(); // 初始化用户信息 UsersToLoad = listCreate(); ACLLog = listCreate();原创 2020-11-24 00:54:13 · 484 阅读 · 0 评论 -
Redis 6.0新特性——ACLs
简介Redis在6版本之前是没有权限的概念的,所以所有连接的客户端都可以对Redis里面的数据进行操作,也可以使用所有高危命令,这样就可能存在Redis直接down掉或者数据被全部清空的情况。当执行flushall 或者flashdb的时候会清空掉数据库里面的所有数据。当执行DEBUG SEGFAULT的时候Redis进程会直接down掉。如下图所示:在Redis 5以及之前的版本为了避免这种情况的出现,可以使用 rename-command将高危命令禁用掉。rename-command KE原创 2020-11-22 21:12:50 · 311 阅读 · 2 评论 -
Redis命令执行过程
简介需要了解Redis命令执行过程,请先了解Redis启动过程和Redis事件监听。Redis启动过程分析Redis事件监听在Redis事件监听中我们了解到在创建文件监听事件的时候acceptTcpHandler就是的执行函数。具体实现如下:for (j = 0; j < server.ipfd_count; j++) { if (aeCreateFileEvent(server.el, server.ipfd[j], AE_READABLE, acceptTcpHandle.转载 2020-10-10 22:15:13 · 2407 阅读 · 0 评论 -
【Redis源码阅读】Redis 启动过程分析
简介由于本人目前是华为FusionInsight HD 中Redis组件的Owner,所以要对Redis进行深入的了解,这对于C语言水平不咋地的我来讲还是有点难度的,于是我决定先从Redis的启动开始看,了解其基本原理。配置初始化Redis服务启动首先做的第一步就是初始化配置。Redis初始化配置主要包括初始化命令表和加载配置两部分。初始化命令表在函数populateCommandTable将redisCommandTable中的命令加载到字典server.commands当中,用于执行命令的时.转载 2020-10-07 22:00:30 · 242 阅读 · 0 评论