博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis与mysql数据同步
阅读量:6986 次
发布时间:2019-06-27

本文共 1063 字,大约阅读时间需要 3 分钟。

hot3.png

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql,此种情况存在的问题主要是如何保证mysql与redis的数据同步,二者数据同步的关键在于mysql数据库中主键,方案是在redis启动时区mysql读取所有表键值存入redis中,往redis写数据是,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键。

 

[java]   

  1. String tbname = "login";  

  2.           

  3.         //获取mysql表主键值--redis启动时  

  4.         long id = MySQL.getID(tbname);  

  5.         //设置redis主键值--redis启动时  

  6.         redisService.set(tbname, String.valueOf(id));  

  7.   

  8.         System.out.println(id);  

  9.         long l = redisService.incr(tbname);  

  10.         System.out.println(l);  

  11.         Login login = new Login();  

  12.         login.setId(l);  

  13.         login.setName("redis");  

  14.         redisService.hmset(String.valueOf(login.getId()), login);  

  15.   

  16.         boolean b = MySQL.insert("insert into login(id,name) values(" + login.getId()  

  17.                 + ",'" + login.getName() + "')");  

  18.         /** 

  19.          *  

  20.          * 队列处理器更新mysql失败: 

  21.          *  

  22.          * 清除缓存数据,同时主键值自减 

  23.          */  

  24.         if (!b)  

  25.             {  

  26.             redisService.delKeyAndDecr  

  27.                 (tbname, "Login:"+String.valueOf(login.getId()));  

  28.             //  redisService.delete("Login:"+String.valueOf(login.getId()));  

  29.                 //redisService.decr(tbname);  

  30.             }  

  31.         System.out.println(redisService.exists("Login:"+String.valueOf(login.getId())));  

  32.         System.out.println(redisService.get(tbname)); 

转载于:https://my.oschina.net/airship/blog/608767

你可能感兴趣的文章
ComboBox的真实值和显示值
查看>>
SQLI_LAB——Less7~15
查看>>
关于kafka生产者相关监控指标的理解(未解决)
查看>>
Ubuntu中搭建Hadoop2.5.2完全分布式系统(一)
查看>>
C++ new delete(二)
查看>>
css写出三角形(兼容IE)
查看>>
Ibatis.net 属性字段中使用 IN 查询条件
查看>>
Tiled 瓦片地图
查看>>
Qt字符串与整形转换
查看>>
A Course on Borel Sets Exercise 1.3.6 ii
查看>>
数据结构-栈
查看>>
信息安全系统设计基础实验四:外设驱动程序设计 20145222黄亚奇 20145213祁玮
查看>>
病毒分析基础(一)
查看>>
【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍...
查看>>
django基础知识~RBAC实验部分代码记录
查看>>
php自己总结的一些经典的实例
查看>>
Todolist总结
查看>>
c++二叉树
查看>>
js生成随机数
查看>>
Centos7.2安装zabbix3.0.1简要
查看>>