Redis   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过mysql自动同步redis大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在服务端开发过程中,一般会使用MysqL等关系型数据库作为最终的存储引擎,redis其实也可以作为一种键值对型的数据库,但在一些实际场景中,特别是关系型结构并不适合使用redis直接作为数据库。这俩家伙简直可以用“男女搭配,干活不累”来形容,搭配起来使用才能事半功倍。本篇我们就这两者如何合理搭配以及他们之间数据如何进行同步展开。

一般地,redis可以用来作为MysqL的缓存层。为什么MysqL最好有缓存层呢?想象一下这样的场景:在一个多人在线的游戏里,排行榜、好友关系、队列等直接关系数据的情景下,如果直接和MySQL正面交手,大量的数据请求可能会让MysqL疲惫不堪,甚至过量的请求将会击穿数据库,导致整个数据服务中断,数据库性能的瓶颈将掣肘业务的开发;那么如果通过redis来做数据缓存,将大大减小查询数据的压力。在这种架子里,当我们在业务层有数据查询需求时,先到redis缓存中查询,如果查不到,再到MysqL数据库中查询,同时将查到的数据更新到redis里;当我们在业务层有修改插入数据需求时,直接向MysqL发起请求,同时更新redis缓存。

在上面这种架子中,有一个关键点,就是MysqL的CRUD发生后自动地更新到redis里,这需要通过MysqL UDF来实现。具体来说,我们把更新redis的逻辑放到MysqL中去做,即定义一个触发器trigger,监听CRUD这些操作,当操作发生后,调用对应的UDF函数,远程写回redis,所以业务逻辑只需要负责更新MysqL就行了,剩下的交给MysqL UDF去完成。

一. 什么是UDF

UDF,是User Defined Function的缩写,用户定义函数。MysqL支持函数,也支持自定义的函数。UDF比存储方法有更高的执行效率,并且支持聚集函数。

UDF定义了5个API:xxx_init()、xxx_deinit()、xxx()、xxx_add()、xxx_clear()。给出了这些API的说明。相关的结构体定义在mysql_com.h里,它又被mysql.h包含,使用时只需#include即可。他们之间的关系和执行顺序可以以下图来表示:

通过mysql自动同步redis

1. xxx()

这是主函数,5个函数至少需要xxx(),对MySQL操作的结果在此返回。函数的声明如下:

@H_673_28@ <>SQL Type<>C/C++ Type<><><><>

[root@localhost zhxilin]# 

大佬总结

以上是大佬教程为你收集整理的通过mysql自动同步redis全部内容,希望文章能够帮你解决通过mysql自动同步redis所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: