新一代Redis6.X新特性,快来围观吧!
Posted 魏小言
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新一代Redis6.X新特性,快来围观吧!相关的知识,希望对你有一定的参考价值。
01 背景
分布式缓存Redis这个技术大家都知道,基本高并发项目里面都离不开这个。当然,也有不少同学还没用过Redis,这个文章看后你就知道如何学习了 !
在多数互联网公司中,Redis6.X占有率很高,不管是面试还是工作都是不离开的,在座的各位或多或少有使用这个技术,但是对于这个Redis是否有系统去学习掌握呢?
关于新版本Redis6.X已经推出一段时间了,然而很多公司依旧停留在老的版本上面,那问题也比较多。现在不少公司还在使用旧版的Redis4.X,这个正常,有些是老的项目由于各种成本问题,就没去升级新的Redis。
这个也导致了开发人员一直没去了解新特性,自己也没实际去操作过,虽然安装安装了Redis6,但是没去了解新特性,导致还是使用了老的方式去使用。
就比如构建Redis Cluster集群,旧版本的需要使用ruby语言进行构建,新版Redis5之后直接用redis-cli就可以快速创建了。
02 Redis6新特性
新版本的Redis6加了很多新特性,我这边简单列举下,这边快速帮大家理清下常见的几个重要新特性。
重要新特性一:支持多线程
1、redis6多线程只是用来处理网络数据的读写和协议解析上,底层数据操作还是单线程,默认不开启
2、执行命令仍然是单线程,之所以这么设计是不想因为多线程而变得复杂,需要去控制 key、lua、事务,LPUSH/LPOP 等等的并发问题
3、官方建议 ( 线程数小于机器核数 ) 4 核的机器建议设置为 2 或 3 个线程,8 核的建议设置为 4或6个线程
4、开启多线程后,是否会存在线程并发安全问题?
不会有安全问题,Redis 的多线程部分只是用来处理网络数据的读写和协议解析,执行命令仍然是单线程顺序执行。
重要新特性二:引入了 ACL(Access Control List)
1、之前的redis没有用户的概念,redis6引入了acl
2、可以给每个用户分配不同的权限来控制权限
3、通过限制对命令和密钥的访问来提高安全性,以使不受信任的客户端无法访问
4、提高操作安全性,以防止由于软件错误或人为错误而导致进程或人员访问 Redis,从而损坏数据或配置
5、文档:https://redis.io/topics/acl
6、常用命令 :
acl list 当前启用的 ACL 规则
acl cat 支持的权限分类列表
acl cat hash 返回指定类别中的命令
acl setuser 创建和修改用户命令
acl deluser 删除用户命令
重要新特性三:支持多线程
1、类似浏览器缓存一样 (支持两种模式)
在服务器端更新了静态文件(如css、js、图片),能够在客户端得到及时的更新,但又不想让浏览器每次请求都从服务器端获取静态资源,类似前端的-Expires、Last-Modified、Etag缓存控制
2、文档:https://redis.io/topics/client-side-caching
3、默认模式
Server 端全局唯一的表(Invalidation Table)记录每个Client访问的Key,当发生变更时,向client推送数据过期消息
优点:只对Client发送其访问过的被修改的数据
缺点:Server端需要额外存储较大的数据量
4、广播模式
客户端订阅key前缀的广播,服务端记录key前缀与client的对应关系。当相匹配的key发生变化时通知client
优点:服务端记录信息比较少
缺点:client会收到自己未访问过的key的失效通知
03 进一步延伸
除了很多Redis新特性外,框架本身的设计思想我们就可以借鉴,它里面的话有很多的精髓,我们是可以参考。特别是当我们需要开发一些中间件的时候,就可以参考里面的设计思想,让可以达到事半功倍的效果,
举个多几个“栗子”:
1、数据持久化AOF/RDB、为什么要有两种机制?分别的应用场景在哪里?
2、Redis中Key过期后如何删除,如果让你设计一个缓存中间件的时候你会怎么设计过期删除策略?
3、内存不足的时候,Redis是如何淘汰对应的key,如果让你去设计这个key的淘汰策略会怎么做?
4、主从复制的时候,可以如果主从延迟久的话,你会增量复制还是全量复制,这个思想可以哪里使用?
5、Reidis主从可以提升读能力,解决单点故障问题,但是写能力如何提升呢?
6、一致性Hash分区很火爆,为啥Redis不采用一致性Hash分区而使用自定义的虚拟哈希槽呢?
…
04 从小白到专家
【分布式缓存Redis6.X+高可用集群】
针对上面N种知识点,这边推荐一个全方位Redis6.X视频给大家,本套课程是2021年全新录制,从0到1讲解分布式缓存Redis6.x,多种核心数据结构,零基础掌握Redis6.X核心基础+高级知识点。
不止讲解Redis核心数据结构,超多案例实战:图形验证码/商品热点数据/日销榜单/电商购物车/用户画像/社交应用/积分实时榜单/多场景分页缓存等,还整合当下新版热门框架SpringBoot2.X+SpringCache框架实战;
》
05 Get It !
地址链接:https://app8hbvnrpe5761.h5.xiaoeknow.com/v1/goods/goods_detail/p_60c1ec2ee4b0c726421e30ef?share_user_id=u_60c849fa6fa92_DT90p1eufB&share_type=5&scene=%E9%82%80%E8%AF%B7%E9%93%BE%E6%8E%A5&sw=1
以上是关于新一代Redis6.X新特性,快来围观吧!的主要内容,如果未能解决你的问题,请参考以下文章
基于Redis6.2.6版本部署Redis Cluster集群 #yyds干货盘点#