分布式缓存Redis6.X新特性讲解拓展

分布式缓存Redis6.X新特性讲解拓展

新版Redis6核心特性-多线程介绍

新版Redis6核心特征介绍-多线程

  • 支持多线程
    • redis6多线程只是用来处理网络数据的读写和协议解析上,底层数据操作还是单线程。
    • 执行命令仍是单线程,之所以这么设计是不行因为多线程而变得复杂,需要去控制key、lua、事务,LPUSH/LPOP等等的并发问题
    • 默认不开启
io-threads-do-reads yes
io-threads 线程数
  • 建议(线程数小于机器核数)
    • 4 核的机器建议设置为 2 或 3 个线程
    • 8 核的建议设置为 4或6个线程
  • 开启多线程后,是否会存在线程并发安全问题?
    • 不会有安全问题, Redis 的多线程部分只是⽤来处理网络数据的读写和协议解析,执行命令仍然是单线程顺序执行。

新版Redis6核心特性-Access ControlList权限控制

引入ACL(Access Control List)

  • 之前redis没有用户的概念,redis6引入了acl
  • 可以给每个用户分配不同的权限来控制权限
  • 通过限制对命令和密钥的访问来提高安全性,以使不受信任的客户端⽆法访问
  • 提高操作安全性,以防止由于软件错误或⼈为错误而导致进程或⼈员访问 Redis,从而损坏数据或配置
  • 文档:https://redis.io/topics/acl
  • 常用命令
    • acl list 当前启⽤的 ACL 规则
    • acl cat ⽀持的权限分类列表
    • acl cat hash 返回指定类别中的命令
    • acl setuser 创建和修改用户命令
    • acl deluser 删除用户命令
+<command> 将命令添加到⽤户可以调⽤的命令列表中,如+@hash
-<command> 将命令从⽤户可以调⽤的命令列表中移除

#切换默认⽤户
auth default 123456

#例⼦ 密码 123 ,全部key,全部权限
acl setuser jack on >123 ~* +@all

#例⼦ 密码 123 ,全部key, get权限
acl setuser jack on >123 ~* +get
参数说明
user用户
default表示默认用户名,或则自己定义的用户名
on表示是否启用改用户,默认为off(禁用)
#…表示用户密码, nopass表示不需要密码
~*表示可以访问的Key(正则匹配)
+@表示用户的权限, “+”表示授权权限,有权限操 作或访问, “-”表示还是没有权限;@为权限分类,可以通过 ACL CAT 查询⽀持的分类。 +@all 表示所有权限,nocommands 表示不给与任何命令的操作权限

新版Redis6核心特性-Client-SideCaching 客户端缓存

新版Redis6特性讲解

  • client side cachin客户端缓存
    • 类似浏览器缓存一样
      • 在服务器端更新了静态⽂件(如css、 js、图片),能够在客户端得到及时的更新,但又不想让浏览器每次请求都从服务器端获取静态资源
      • 类似前端的-Expires、 Last-Modified、 Etag缓存控制
  • 文档: https://redis.io/topics/client-side-caching

在这里插入图片描述

  • 详细: 分为两种模式
redis在服务端记录访问的连接和相关的key, 当key有变化时通知相应的应用
应用收到请求后⾃⾏处理有变化的key, 进⽽实现client cache与redis的⼀致
这需要客户端实现,⽬前lettuce对其进⾏了⽀持

默认模式

  • Server 端全局唯⼀的表(Invalidation Table)记录每个Client访问的Key,当发⽣变更时,向client推送数据过期消息。
    • 优点:只对Client发送其访问过的被修改的数据
    • 缺点: Server端需要额外存储较⼤的数据量。

广播模式

  • 客户端订阅key前缀的⼴播,服务端记录key前缀与client的对应关系。当相匹配的key发⽣变化时通知client。
    • 优点:服务端记录信息比较少
    • 缺点: client会收到自己未访问过的key的失效通知
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值