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

antirez:Redis6真的来了

我想这大概是迄今为止,Redis最接近“企业级”应用的一个版本了,有趣的是,在这之前我花了很长时间来理解什么是企业级应用。我认为我并不喜欢这个词,但是它还是有一些意义的。...但是无处不在意味着加密和ACL之类的环境也是必须要支持的,因此Redis必须要感谢我,尽管我极力追求简单性。...ACLs 对Redis ACLs最好对介绍就是ACL文档本身(https://redis.io/topics/acl),即使它可能需要进行一些更新以匹配最近对修改。我在这里更想讨论一下使用它的动机。...我想这是最好的处理方法了,值得一提的是,我们现在为ACL提供了Redis模块接口,因此你可以编写自定义身份验证方法。 SSL 现在是2019年,马上要到2020年了,因此有一些新的规则。...Status和ETA 现在我们已经有了RC1,我希望在3月末,最晚5月,你就可以看到GA版本准备就绪。 现在,Redis6绝对是可测试的,并且遇到错误的机会很小。

51930

Redis 6.0新功能

on nopass ~* &* +@all" 2) "user user1 off &* -@all" 在上面的示例中,我根本没有指定任何规则。...IO多线程其实指客户端交互部分的网络IO交互处理模块多线程,而非执行命令多线程。Redis6执行命令依然是单线程。...# 原理架构 Redis6 加入多线程,但跟 Memcached 这种从 IO处理到数据访问多线程的实现模式有些差异。...整体的设计大体如下: 另外,多线程IO默认也是不开启的,需要再配置文件中配置 io-threads-do-reads yes io-threads 4 # 工具支持 Cluster 之前老版Redis...# Redis新功能持续关注 Redis6新功能还有: RESP3新的 Redis 通信协议:优化服务端与客户端之间通信 Client side caching客户端缓存:基于 RESP3 协议实现的客户端缓存功能

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

    Redis6.0主从、哨兵、集群搭建和原理

    由于单机Redis存储能力受单机限制,以及无法实现读写操作的负载均衡和读写分离,无法保证高可用。...从服务器只读(推荐配置)config set slave-read-only yes #查看主从信息info replication #配置主节点ACL账号密码(Redis6开启ACL的情况)config...port #从服务器只读(推荐配置)slave-read-only yes 使用ACL用户同步 上一篇文章中介绍了Redis6的新特性ACL访问控制列表,基于该特性我们可以为Redis设置不同的用户和权限...,在主从复制中我们也可以配置该同步用户的账号密码: #命令行模式#在从节点配置主节点ACL账号密码(Redis6开启ACL的情况)config set masteruser defaultconfig...set masterauth wyk123456 #在从节点查看主节点的ACL用户密码config get master* #配置文件模式 redis.conf#在从节点配置主节点ACL账号密码(Redis6

    3.9K63

    【Redis】Redis6.0 新功能

    一、ACL访问控制列表 Redis ACL 是 Access Control List(访问控制列表)的缩写,该功能允许根据可以执行的命令和可以访问的键来限制某些连接 在 Redis 5 版本之前,Redis...其他规则是字符前缀,它们与命令或类别名称、键模式等连接在一起 (2)通过命令创建新用户默认权限 acl setuser user1 在上面的示例中,我根本没有指定任何规则。...简介 Redis6 终于支撑多线程了,告别单线程了吗? IO 多线程其实指客户端交互部分的网络 IO 交互处理模块多线程,而非多线程执行命令,Redis6 执行命令依然是单线程 2....之所以这么设计是不想因为多线程而变得复杂,需要去控制 key、lua、事务, LPUSH/LPOP 等等的并发问题 整体的设计大体如下: 另外,多线程网络IO 默认也是不开启的,需要再配置文件redis...四、Redis6 其他新功能 RESP3 新的 Redis 通信协议:优化服务端与客户端之间通信 Client side caching 客户端缓存:基于 RESP3 协议实现的客户端缓存功能。

    55730

    慕课网2021-01-29 Redis6直播笔记 - 上(acl客户端缓存多级缓存)

    redis6安装注意点 我们课程里忽略了,就不去安装了,仅仅只提供安装文档,redis6的安装其实和redis5安装差不多,只是需要注意gcc的版本需要提高,不然编译会出错。...在redis6中,我们可以设置不同的用户,对他们进行授权命令,控制可读可写,限制访问缓存key的前缀等。这样可以更加提高redis6的数据安全性。...ACL 存储模式 acl的权限的存储模式可以配置到redis.conf中,也可以外部文件aclfile,我个人偏好后者,这也是官方推荐的方式。...2)LOAD:重新加载acl文件,手动修改acl文件后,需要让redis服务重新加载,才能生效 3)SAVE:保存当前用户权限配置到acl文件 4)LIST:展示用户权限的详细信息 5)USERS:展示所有用户名...实现客户端缓存的方式 - 默认模式 Redis-server 服务端会记录客户端访问了哪些key,这客户端id与key有唯一的映射关系,当其中的key发生变更时给客户端发送失效信息。

    71910

    Redis权限管理体系(一):客户端名及用户名

    在Redis6之前的版本中,因安全认证的主要方式是使用Redis实例的密码进行基础控制,而无法按照不同的应用来源配置不同账号以及更细粒度的操作权限控制来管理。...如果客户端在执行事务,则显示事务的 ID;否则,为 "-1" qbuf: 0,查询缓冲区的长度,即客户端还未读取的查询缓冲区的长度。 qbuf-free: 0, 查询缓冲区的空闲长度长度。...obl: 0,输出缓冲区的长度,即客户端还未读取的输出缓冲区的长度。 oll: 0,输出缓冲区的列表长度。 omem: 0,客户端的输出缓冲区占用内存字节数。...数据库登录用户名 在Redis6版本中执行client list操作时,会看到对于的信息中多了2列,例如: 127.0.0.1:6479> client list id=4 addr=127.0.0.1...这是因为在Redis6版本中增加了访问权限控制列表功能(Access Control List,ACL),这个功能可以极大的提升Redis的安全性。

    1.2K10

    Redis6----应用问题解决和新功能预览

    问题:setnx刚好获取到锁,业务逻辑出现异常,导致锁无法释放 解决:设置过期时间,自动释放锁 ---- 优化之设置锁的过期时间 设置过期时间有两种方式: 1....---- (2)通过命令创建新用户默认权限 acl setuser user1 在上面的示例中,我根本没有指定任何规则。如果用户不存在,这将使用just created的默认属性来创建用户。...IO多线程其实指客户端交互部分的网络IO交互处理模块多线程,而非执行命令多线程。Redis6执行命令依然是单线程。...整体的设计大体如下 另外,多线程IO默认也是不开启的,需要再配置文件中配置 io-threads-do-reads yes io-threads 4 ---- 工具支持 Cluster 之前老版Redis...---- Redis新功能持续关注 Redis6新功能还有: 1、RESP3新的 Redis 通信协议:优化服务端与客户端之间通信 2、Client side caching客户端缓存:基于 RESP3

    28320

    Docker基本使用命令

    刚看别人使用Docker的时候有很多不解,为什么要用Docker,Docker怎么用?Docker配置为什么这么难?为什么网络访问不通?等等因素阻碍了笔者学习Docker?...其实笔者也很笨,有很多思考不清晰的点。顺便也分享下。 学时疑惑: Q:我一套服务为什么不放在一个容器里面(Java、MySQL、Nginx、Redis等)?...下载镜像 # 以Redis为例子 docker pull redis 运行镜像 docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379...\ # 端口映射 redis # 镜像名称 docker run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes -...其实在刚使用容器的时候会很麻烦: 不知道Docker的命令和容器需要的参数 每次都要上官网找下有什么参数或者百度,但相比每次下载文件下来,进去配置省很多力气,并且配置一次保存好用过的命令,以后都可以用了

    30510

    Docker基本使用命令

    前言 刚看别人使用Docker的时候有很多不解,为什么要用Docker,Docker怎么用?Docker配置为什么这么难?为什么网络访问不通?等等因素阻碍了笔者学习Docker?...其实笔者也很笨,有很多思考不清晰的点。顺便也分享下。...学时疑惑 Q1:我一套服务为什么不放在一个容器里面(Java Mysql Nginx Redis等) A1:因为又要维护容器内网络,又要维护端口等等之类的东西,Docker就是为了快速搭建环境而生的,而且...复制代码 运行镜像 docker run \ -d \ # 后台运行 --name redis6 \ # 自定义名字 -p 6379:6379 \ # 端口映射 redis # 镜像名称 docker...run -d --name redis6 -p 6379:6379 redis redis-server --appendonly yes --requirepass "123456" # 完整命令

    40430

    Redis6 最重要的新功能「客户端缓存」是个什么鬼?

    如果一个 API 服务有多个物理进程,每个进程里面都有一份内存缓存的数据(比如全局配置参数),这多个进程的内存缓存的数据在同一时间就会不一致。...如果没有这个内存缓存,API 服务获取全局配置参数总是要从远程缓存获取最新的参数,这就不存在配置一致性问题。 那 Redis 要对这个「客户端缓存」做到什么程度呢?它如何平衡性能和一致性的问题呢?...除此之外,这里还存在一个明显的惊群问题,我不想关心的事件 Redis 也会通知给我,因为这里的内置 channel 是所有 key 共享的,任意的 key 发生的变化,channel 的消费者都能收到相应的事件...那如何订阅具体的 Key 呢,Redis6 提供了两种方式,自动订阅和手动订阅。自动订阅就是客户端的某个开关打开后,服务器会自动帮助客户端订阅它所读取的所有的 Key。...所以 Redis 也提供了 手动订阅的方式,需要在每一条需要缓存的读 Key 命令之前打上一条特殊的标记表示接下来的这条指令读取的值会缓存在内存里。

    1.5K10

    Redis权限管理体系(二):终于等来了Redis权限控制体系ACL

    Redis在存储系统界的使用排名一直遥遥领先,但Redis6版本之前,一直没有一套较为全面的权限控制体系。...而随着Redis6版本被更多人使用后,权限控制系统也逐渐广泛应用起来了,本文就探索一下Redis ACL的主要内容。 1....WHOAMI "default" 1.3 创建多密码 Redis中一个用户可以有多个密码,这是与其他数据库有所不同的地方。...,这个有个优点在于如果忘记之前的密码,可以在新增一个密码,而不影响原密码的使用。...结语 通过创建用户及配置相应的权限,可以起到隔离用户操作,避免风险操作等,从而降低Redis被误操作或风险操作的概率,提升安全性及稳定性。大家也可以多多组合测试,配置适合自己使用的权限组合。

    1.2K10

    面试系列之-Redis6多线程客户端缓存安全

    从单线程处理网络请求到多线程处理 Redis6采用多个IO线程来处理网络请求,提高网络请求处理的并行度。Redis 6.0就是采用的这种方法。...当有客户端请求和实例建立Socket连接时,主线程会创建和客户端的连接,并把Socket 放入全局等待队列中,接着主线程通过轮询方法把Socket连接分配给IO线程; 阶段二:IO线程读取并解析请求主线程一旦把...一般来说,线程个数要小于Redis实例所在机器的CPU核个数,例如,对于一个8核的机器来说,Redis官方建议配置6个IO线程:io-threads 6 如果在实际应用中,发现Redis实例的CPU开销不大...,应用就可以直接在本地快速读取数据了;当把数据缓存在客户端本地时,会面临服务端与客户端数据一致性问题; 解决方案 普通模式:实例会在服务端记录客户端读取过的key,并监测key是否有修改,一旦key的值发生变化...”:ACL SETUSER normaluser on > abc; 启用RESP3协议 Redis 6.0实现了RESP3通信协议,而之前都是使用的RESP2,在RESP 2中客户端和服务器端的通信内容都是以字节数组形式进行编码的

    38910

    Centos8安装Redis6.0

    redis-6.0.1]# make PREFIX=/usr/local/soft/redis6 install 复制代码 2,生成配置文件 创建安装目录 [root@centos8 redis-6.0.1.../usr/local/soft/redis6/conf/ 复制代码 五,创建供redis运行的目录 分别用来存放redis的日志和数据 logs:存放日志 data:存放快照数据 [root@centos8...[root@centos8 redis6]# mkdir data 复制代码 六,修改redis的配置文件: [root@centos8 conf]# vi redis.conf 复制代码 配置项:...logfile "/data/redis6/logs/redis.log" 复制代码 #数据保存目录 dir /data/redis6/data/ 复制代码 #使用的最大内存数量 maxmemory...128MB 复制代码 #io线程数 #系统建议设置为cpu核心数量的3/4,我的机器是4核,所以这里设置为3 io-threads 3 复制代码 附redis.conf中的原说明: # So for

    58010

    redis 6多线程模型

    redis 多线程架构 redis6之前的版本一直单线程方式解析命令、处理命令,这样的模式实现起来简单,但是无法使用多核CPU的优势,无法达到性能的极致;到了redis 6,redis6采用多线程模式来来读取和解析命令...,但是命令的执行依然通过队列由主线程串行执行,多线程的好处是分离了命令的解析和命令执行,命令的解析有独立的IO线程进行,命令执行依旧有main线程执行,多线程增加了代码的复杂度 开启多线程模型 Redis.conf...添加如下配置 io-threads 4 io-threads-do-reads yes struct redisServer { pthread_t main_thread_id;...*/ } 在redis-server中的该配置表现为三个字段 启动redis并查看多线程 redis-server thread:从队列中取出数据一次执行命令 bio_aof_fsync thread...:page cache中的aof数据fsync到磁盘的线程 io_thd thread: 从tcp中读取命令同时解析命令 多线程主逻辑 int main(int argc, char **argv)

    44620

    和 杠精 聊Redis多线程 :(

    答案是显而易见的:redis6,逃不过真香定理,引入了多线程;而在redis6之前,却是单线程的。 也就是说,这不是一个是和否的问题,还涉及到第二维度的版本参与。 可是,这位同学要打我的脸。...其中有一个回复我特别满意。他说:“你竟然在问一个停留在JDK1.6的我,跑着Windows版本Redis的我,是否用到了Redis6。我还在用着Redis3呢。”...Redis6的多线程开启,需要配置一个参数。 io-threads 4 当开启之后,只有出流量使用多线程,如果你想要入流量也走多线程,那也可以配置以下参数。...毕竟,4core的机器,我部署上3台redis cluster的实例,理论上会提升三倍呢。 redis配置文件里,有不少内容在注释这个新特性。 4. 怎么实现?...redis现在依然没有多线程的锁竞争和线程安全问题,因为它的数据读取这一步骤,仍然是单线程的,要排队运行。一些耗时的操作,比如keys *,hgetall等,仍然要注意。

    53320

    Redis6安装(上) - 单机单实例

    Redis6已经早早的上了,有部分同学问说按照出错,因为新版本安装和以前版本有一点点不同,那就是gcc的版本需要提升,要不然编译安装redis6不会通过。 ?...首先下载新版的redis6并且上传到centos7: ? 安装redis需要gcc的环境,和以往老版本不同,这里的gcc需要高一点的版本。 ?...随后升级gcc版本 永久配置gcc9的环境 再次查看,gcc的版本已经更新 ? gcc安装完毕以后,接下来可以按照redis了,解压redis6安装包 ?...进入到这个解压后的文件夹,编译并且安装redis 安装好之后需要配置一下,先复制配置文件到安装目录: ? 然后vim修改这个文件 后台启动 ? 修改密码 ?...至此,Redis6安装成功,其实和5.x也是一样的,只是gcc版本需要升级,所有有些小伙伴安装的时候会编译出错。

    53320
    领券