首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RedisRedis6.0 新功能

一、ACL访问控制列表 Redis ACL 是 Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接 在 Redis 5 版本之前,Redis...简介 Redis6 终于支撑多线程了,告别单线程了吗? IO 多线程其实指客户端交互部分的网络 IO 交互处理模块多线程,而非多线程执行命令,Redis6 执行命令依然是单线程 2....5 将 redis-trib.rb 的功能集成到 redis-cli。...Modules API Redis 6 中模块 API 开发进展非常大,因为 Redis Labs 为了开发复杂的功能,从一 开始就用上 Redis 模块。...Redis 可以变成一个框架,利用 Modules 来构建不同系统,而 不需要从头开始写然后还要 BSD 许可。Redis 一开始就是一个向编写各种系统开放的 平台

33830
您找到你想要的搜索结果了吗?
是的
没有找到

Redis 6.0 新特性概览

前言 Redis 6 RC2 于今年3月5号Release,预计今年4.30月份发布GA版本,官方网站提供 unstable 版本的供大家测试,本文基于官方文档介绍Redis 6的重要的新特性。...不过该特性目前合并到了unstable 分支,作者说等6.0 正式GA之前,还要修改很多。我只能说 拭目以待。...Redis 6.0与老版性能对比评测 Proxy antirez开发了 Proxy 功能,让 Cluster 拥有像单实例一样的接入方式,降低大家使用cluster的门槛。...工具支持 Cluster 其实这部分没有特别突出的变化,Redis 5 将 redis-trib.rb 的功能集成到 redis-cli 。...Modules API Redis 6中模块API开发进展非常大,因为Redis Labs为了开发复杂的功能,从一开始就用上Redis模块。

2.7K40

Redis 6.0新特性——ACLs

简介 Redis在6版本之前是没有权限的概念的,所以所有连接的客户端都可以对Redis里面的数据进行操作,也可以使用所有高危命令,这样就可能存在Redis直接down掉或者数据被全部清空的情况。...当执行DEBUG SEGFAULT的时候Redis进程会直接down掉。如下图所示: 在Redis 5以及之前的版本为了避免这种情况的出现,可以使用 rename-command将高危命令禁用掉。...ACL 权限 Redis ACL是Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接。...可以对Redis进行配置,以使新连接已过“默认”用户进行身份验证(这是默认配置),因此,配置默认用户具有的能力是,仅向连接提供特定功能子集的功能未明确认证。...在Redis的配置文件(redis.conf)中可以配置acl文件的位置: aclfile /etc/redis/users.acl 那么acl里面到底保存的是什么呢?

86020

redis 6.0 源码代码整体结构

redis 6.0 源码代码整体结构 整体结构 deps目录 src目录 服务器实例 数据库操作 可靠性和可扩展性保证 辅助功能 tests目录 utils目录 整体结构 在redis源码目录下...除了deps、src、tests、utils四个子目录以外,Redis源码总目录下还包含了两个重要的配置文件,一个是Redis实例的配置文件redis.conf,另一个是哨兵的配置文件sentinel.conf...deps目录 主要包含了Redis依赖的第三方代码库,这些代码可以独立于Redis src目录下的功能源码进行编译 hiredis:redis的C语言版本客户端代码 jemalloc:代替glibc...src目录,包含了所有功能模块,可以按照Redis的服务器实例、数据库操作、可靠性和可扩展性保证、辅助功能分为四个维度 服务器实例 server.c:Redis在运行时是一个网络服务器实例,server.c...以及对这两类文件的检查功能(宕机导致未能完整保持),对应的代码文件分别是redis-check-rdb.c和redis-check-aof.c 主从复制功能实现:replication.c 高可扩展性保证的功能

41440

Redis源码阅读(六)Redis 6.0的多线程

Redis使用单线程是因为基于内存速度快,而且多路复用也能确保redis能同时处理多个请求,在Redis 6.0引入多线程是因为在某些操作要优化,比如删除操作。...image.png 二、Redis 6.0 多线程实现 引入多线程说明Redis在有些方面,单线程已经不具有优势了。...Redis 引入多线程操作也是出于性能上的考虑,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率。...image.png 网上有同学对Redis多线程和单线程版本进行了性能测试,对比显示,Redis的多线程版本性能至少比单线程版本提高了一倍。...image.png 接下来,我们Redis 6.0的多线程做个流程介绍: 详细流程: Redis 启动的时候会调用InitServerLast() 初始化 IO 线程(用户设置了线程数量,且允许多线程读

1.4K20

Redis 6.0多线程探秘(上)

: 5.0版本是直接升级到6.0版本,对于这个激进的升级,antirez表现得很有信心和兴奋,所以第一时间发文来阐述6.0的一些重大功能"Redis 6.0.0 GA is out!"...3Redis 6.0多线程的神秘面纱 Redis作为内存型NoSQL可以说是高性能的代名词,生产环境中数万QPS都是家常便饭。 试想一下,Redis如何进一步来提高性能呢?...但是Redis 6.0的多线程并没有这么做。 Redis自己的多线程 单线程给Redis带来的好处,或许更大。...Redis 6.0将处理过程中最耗时的Socket的读取、请求解析、写入单独外包出去,剩下的命令执行仍然由单线程来完成和内存的数据交互。...画外音:Redis 6.0 将网络数据读写、请求协议解析通过多个IO线程的来处理 ,对于真正的命令执行来说,仍然使用主线程操作,真是个很特别的多线程啊!

46410

Redis 6.0 IO线程功能分析

Redis多线程原理 Redis 6.0 的亮点之一就是支持多线程,Redis 分 主线程 和 IO线程,IO线程 只用于读取客户端的命令和发送回复数据给客户端,处理客户端命令还是在 主线程 进行,如下图所示...因为 Redis 的数据库是共享的,所以如果多个线程同时操作数据库,那么就必须要对数据库进行上锁,而上锁是一个比较耗时的操作(因为上锁可能会导致线程上下文切换)。...由于 Redis 6.0 以前一直都是由单线程执行命令的,所以如果要改为多线程执行命令,那么需要修改大量代码,而且可能会引入新的问题(比如bug)。...从上面的测试结果可以看出,多线程版本的 Redis 读写QPS都要比单线程版本的高。...Redis 多线程实现 要开启 Redis 的 IO线程 功能,可以在配置文件中加入以下配置项: io-threads-do-reads yes # 开启IO线程 io-threads 6

92220

Redis6.0使用了多线程还能保证线程安全么?-Redis6.0 多线程精讲

有很多同学就有疑问了,既然官方都表示CPU不是Redis的性能瓶颈,那么为什么还要引入多线程呢?...虽然单线程有很多优点,但对应的也必然会有一些缺点存在: 只能使用CPU的单核 如果删除的key过大(set 里面有一堆key),会导致服务端阻塞(后面通过LazyFree机制) QPS难以提高 但是redis...并没有直接上多线程IO去处理这些,而是在多线程之前引入了LazyFree机制 引入多线程的优点 充分利用CPU资源 多线程任务有利于分担Redis同步IO读写的负荷 LazyFree lazyFree...命令 将执行结果写入缓冲区 阻塞等待IO线程将数据写入socket 等待IO线程写入完毕,主线程清空队列,解绑关系,等待后续的连接请求 redis多线程安全么?...安全的 一句话总结:多线程只用在了IO读写上面,redis命令执行还是单线程执行。

55610

RedisRedis4.0、5.0、6.0版本特性整理

Redis6.0的多线程默认是禁用的,只使用主线程。如需开启需要修改redis.conf配置文件:io-threads-do-reads yes。开启多线程后,还需要设置线程数,否则是不生效的。...更多关于redis 6.0多线程的讲解,请查看:https://www.cnblogs.com/madashu/p/12832766.html SSL支持 ​ 连接支持SSL协议,更加安全。...不过该特性目前合并到了unstable 分支,作者说等6.0 GA版本之前,还要修改很多。 ​...从Redis 6.0开始支持了Prxoy,可以直接用Proxy来管理各个集群节点。...工具支持cluster模式; 提升了RDB日志加载速度; 本文参考redis4.0、5.0、6.0版本的release notes; 本文参考优秀的网络资料,由于时间长了,忘了有哪些了,不一一列举了

1.4K20

CentOS 7手动安装Redis 6.0

最新稳定版为6.0,随着时间推移,版本会发生变化,请前往Redis官方:https://redis.io/download下载最新版本。...#下载Redis wget https://download.redis.io/releases/redis-6.0.9.tar.gz #解压Redis tar xzf redis-6.0.9.tar.gz...#进入Redis目录 cd redis-6.0.9 #编译 make 编译成功后,Redis服务二进制文件位于src/redis-server,直接输入这个路径即可运行Redis服务,不过运行后是在前台运行...运行Redis 为了方便后期管理与维护,可以将Redis src放到特定目录下,比如mv src/ /usr/local/redis 同时可以将redis-6.0.9目录下的redis.conf也复制一份...bits=64 build=ef93b08070de4db5 Redis客户端 通过上面编译后,Redis自带了一个命令行客户端redis-cli,输入下面的命令可检测Redis是否正常运行。

56530

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

RESP3协议概述 RESP3是RESP v2的更新版本,RESP v2是Redis中使用的协议,大约从版本2.0开始(1.2已经支持它,但是Redis 2.0是第一个只讨论这个协议的版本)。...通常Redis命令只会使用这些可能性的一个子集。但是,使用Lua脚本或使用Redis模块,任何组合都是可能的。...Map可以有任何其他类型作为字段和值,但是Redis将只使用可用可能性的子集。例如,Redis命令不太可能返回一个数组作为键,但是Lua脚本和模块可能会这样做。...例如,如果我们想象一个更高级语言的会话,可能会发生类似的事情: > r = Redis.new # > r.mget("a","b") # >...在Redis中,已经有了连接的概念,即在Redis协议的至少三个不同部分推送数据: Pub/Sub是一种推送模式连接,客户端在其中接收发布的数据。 未完待续。。

1.5K20
领券