您现在的位置是:亿华云 > 应用开发
Redis4.0这个新特性,非常有用,你了解吗?
亿华云2025-10-04 00:44:31【应用开发】7人已围观
简介我们常说Redis是单线程的服务,单线程的好处非常明显,首先是代码逻辑更加简单,服务更加稳定,但同时,单线程也引来一些问题,例如做一些非常重的操作的时候,其他的任务就会受到影响,有一些非常重要的操作,
我们常说Redis是新特性非单线程的服务,单线程的用解好处非常明显,首先是新特性非代码逻辑更加简单,服务更加稳定,用解但同时,新特性非单线程也引来一些问题,用解例如做一些非常重的新特性非操作的时候,其他的用解任务就会受到影响,有一些非常重要的新特性非操作,其实可以多线程来做,用解例如进行数据的新特性非备份,或者删除一个非常大的用解字典的时候,同步做的新特性非意义并不是很大。
为了解决这个问题,用解Redis还有一些异步线程进行工作,新特性非让Redis更加高效,我们称之为Lazyfree机制。
Redis懒惰删除Unlink命令
在Redis命令中,提供了一个新的删除命令,Unlink。云服务器提供商其实在现实生活中,这种懒惰删除在现实生活中非常的常见,例如饭店晚上要打烊的时候,并不会立马赶走店里的客人,打扫卫生,而是现在门口挂出打烊的标识,然后再在里面慢慢地收拾,Redis的Unlink命令也是如此。例如我们对一个字典执行Unlink命令的执行步骤如下:
先从字典的条目中把这个key拿下 获取字典总共有多少个值 如果个数较少,值执行同步删除,否则原子增加待惰性删除的条目 将字典提交给惰性删除队列 返回删除成功Redis清空数据库异步化
我们都知道,如果我们要把整个Redis里面所有的数据删除的话,也是非常需要时间的,同理,Redis的删除命令也可以进行异步化。当执行删除命令的时候,Redis会把数据库的云南idc服务商字典指向新的字典,然后把旧的数据提交到异步的线程进行处理。
Redis其他异步删除
在此之前,我们介绍过Redis的一些内存淘汰与过期的策略。例如Redis的过期策略有主动删除跟被动删除两种不同的策略,Redis4.0为我们提供新的配置项,可以在在删除的时候开启异步删除。这里需要注意的是,并不是开启一个线程去不停扫描那些key过期。
总结
Redis的异步删除,其实在我们日常的开发中,也可以进行借鉴。例如电商系统中,商家要给所有买过自己商品的用户派发一张优惠券,这个逻辑,非常地重,需要读取用户系统(例如需要读取用户的基本信息)、香港云服务器订单系统(查询用户的订单)、优惠系统(查看优惠券的数量跟优惠券的详情)、Push系统(推送用户领到新的优惠券了,可以查看了)等多个系统,如果我们同步做,可能用户点一次派发用券,要花好几个小时,而且可能伴随着各种超时,一般我们都是把这种需求这样做,提供一个任务队列,当商家床架完任务的时候,就把任务丢到消息队列里面,告诉商家说任务提交成功,然后后台再慢慢进行优惠券派发,最后通知商家发送成功。
Redis,这个小而精的项目,有很多设计的思想值得学习,欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。
很赞哦!(5)
相关文章
- 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
- Sentry For React 完整接入详解(2021 Sentry v21.8.x)前方高能预警!三万字,慎入!
- Loki日志系统,比ELK轻量多了
- 拆解高频面试题:你是如何理解单向数据流的?
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- HarmonyOS JS FA 调用 Java PA 机制
- Java中的默认接口方法和静态接口方法
- 面试官: 平时开发中你用过读写锁吗?
- CNAME:对应解析的记录值为域名地址
- 手把手教你用Java实现计算BMI值、HashSet集合