大厂学院 - 分布式存储极致性能Redis6
-
Redis6新特性
之前一直听别人说redis6出了,还实现了多线程,以后面试官问redis是单线程还是多线程这样的问题肯定要涨10个百分点,今天就结合antirez的博客和github文档看看redis到底实现了什么新技能。先看下antirez的概览: 许多新的模块API。 更好过期算法。 SSL支持。 ACL支持。 新的RESP3协议。 客户端缓存。 多线程I/O。 副本的无盘复制。 redis-benchmark支持和redis-cli改进。 Systemd 支持重写。 redis集群代理的发布。 disque模块的发布。 我们分别来看看redis每个特性的主要特点。 Spring Cloud Alibaba 大型互联网领域多场景最佳实践【百度网盘】 高级Redis应用进阶课 一站式Redis解决方案【百度网盘】 -
ACL
在redis6以前,无法进行用户权限管理,只有一个auth密码验证的功能,如果验证码通过那么就是root权限,如果我们想要禁用一些redis指令,只能使用rename将原指令名字修改,这样做很不方便。而在redis6中引入了ACL模块,可以定制不同用户的权限,包括: 用户名和密码。 可以执行的指令。 可以操作的key。 root密码登入的用户名为default,查看ACL列表的指令为:ACL LIST。 ACL规则:下面是有效ACL规则的列表。某些规则只是用于激活或删除标志,或对用户ACL执行给定更改的单个单词。其他规则是字符前缀,它们与命令或类别名称、键模式等连接在一起。 -
RESP3
RESP(REdis Serialization Protocol)是 redis 服务端与客户端之间通信的协议。redis以前使用的是RESP2,而redis6在兼容RESP2的基础上,开始支持RESP3。 RESP3在性能上并没有很大的提升,它主要的作用是扩展redis的数据结构和语义。RESP3 新增了许多类型,比如Null、Double、Boolean、Blob error等,不同于RESP2只是返回字符流 ,RESP3 返回类型包含足够的信息以返回适当的数据类型,即HGETALL将返回 RESP3 Map,而LRANGE将返回 Array,而EXISTS将返回 RESP3 Boolea。 多线程I/O 询问redis是单线程还是多进程是所有入门文档的Hello World,在今年antirez终于在他的博客上宣布redis实现多进程,真是可喜可贺,可喜可贺。在这里你一定要记住了,redis是单进程的,多进程是不可能多进程的,这辈子都不会多进程(惊不惊喜,意不意外)。官方的解释是: