Redis 嵌入式开发

本文探讨了将Redis用于不仅仅是缓存系统,而是直接进行嵌入式开发的可能性。通过使用Lua脚本,可以在Redis内部执行数据处理,减少网络请求,提高效率。然而,由于Redis的单线程特性,过于复杂的逻辑会阻塞服务器,适合在Redis中执行的任务主要是数据打包。通过实验对比,展示了不同场景下Redis内嵌Lua的性能优势与限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis 嵌入式开发

目前

目前来说,我们使用Redis的场景大多是仅仅将Redis作为缓存系统来使用。其实,Redis发展到现在,由于Redis的基于内存速度快,同时支持数据持久化等优良特点,业界很多地方,都是直接将Redis做为数据库使用。甚至,对于一些简单的应用,我们可以直接把逻辑写进Redis里面,从而达到更高的效率。

为什么是lua

  1. lua本身非常小巧,他的解释器体积也非常小

  2. 语言运行的效率相对较高,速度也比较快

  3. 有一些比较好的语言特性

这里不是重点,不再赘述

为什么要在Redis里面进行嵌入式开发

Redis运行的原理是基于C/S模型的,也就是说每次拉取数据就是一次的网络请求。如果在一个接口里面,我们有几个数据需要从Redis里面获取,可能就需要发好几次网络请求,这样的网络开销是相对比较大的。如最左边的图

图片描述

如果我们把,所有取数据的逻辑,全部放在Redis里面,在Redis里面就打包好,一次性的返回回来,我们就可以只需要一次网络请求,就可以把我们需要的数据都拿回来(如中间的这幅图)。这样,我们的网络消耗就能大幅度的减小。甚至,在一些场合,我们直接就可以用Nginx直接找Redis要数据,不需要经过php-fpm/Uwsgi这个环节,就可以把需要的缓存数据全部返回(如右边的图)。这就是通过在Redis进行嵌入式开发来提高网络效率的原理。

内部优化

最主要的Redis提供了EVAL方法来进行,其用法是

ev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值