MySQL通知Redis是一种将MySQL数据库中的数据变更实时同步到Redis缓存中的机制。这种机制通常用于提高数据访问速度和减轻数据库负载。通过这种方式,应用程序可以直接从Redis缓存中读取数据,而不是每次都访问MySQL数据库。
以下是一个基于触发器的MySQL通知Redis的简单示例:
DELIMITER $$
CREATE TRIGGER `after_user_insert` AFTER INSERT ON `user`
FOR EACH ROW
BEGIN
INSERT INTO `redis_sync_queue` (table_name, operation, data)
VALUES ('user', 'INSERT', CONCAT('{"id":', NEW.id, ',"name":"', NEW.name, '"}'));
END$$
DELIMITER ;
import redis
import json
r = redis.Redis(host='localhost', port=6379, db=0)
pubsub = r.pubsub()
pubsub.subscribe('redis_sync_queue')
for message in pubsub.listen():
if message['type'] == 'message':
data = json.loads(message['data'])
if data['operation'] == 'INSERT':
r.hset('user:' + str(data['id']), mapping={'name': data['name']})
领取专属 10元无门槛券
手把手带您无忧上云