在SpringBoot中通过Canal实现MySQL与Redis的数据同步( 二 )

配置文件
spring:redis:host: localhostport: 6379password: 123123database: 8lettuce:pool:maxActive: 8maxIdle: 100minIdle: 10maxWait: -1---canal:server: 192.168.2.130:11111destination: redis #可设置*个,逗号隔开 , 对应需要创建*文件夹,且文件夹下有instance.properties文件数据模型
public class Users {private Integer id ;private String name ;private Integer age ;@Overridepublic String toString() {return "Users [id=" + id + ", name=" + name + ", age=" + age + "]";}}具体服务组件
@Component@CanalTable(value = https://www.isolves.com/it/cxkf/jiagou/2023-09-26/"users")public class UserServiceImpl implements EntryHandler {private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);private final StringRedisTemplate stringRedisTemplate ;public UserServiceImpl(StringRedisTemplate stringRedisTemplate) {this.stringRedisTemplate = stringRedisTemplate ;}@Overridepublic void insert(Users user) {logger.info("新增数据为{}", user);try {this.stringRedisTemplate.opsForValue().set("users:" + user.getId(), new ObjectMApper().writeValueAsString(user)) ;} catch (JsonProcessingException e) {e.printStackTrace();}}@Overridepublic void update(Users before, Users after) {logger.info("原来数据为{}", before);logger.info("更新数据为{}", after);try {this.stringRedisTemplate.opsForValue().set("users:" + after.getId(), new ObjectMapper().writeValueAsString(after)) ;} catch (JsonProcessingException e) {e.printStackTrace();}}@Overridepublic void delete(Users user) {logger.info("删除的数据为{}", user);this.stringRedisTemplate.delete("users:" + user.getId()) ;}}以上通过增,删 , 改数据就能同步到Redis中了 。

【在SpringBoot中通过Canal实现MySQL与Redis的数据同步】


推荐阅读