redis与mysql数据同步_Redis和MySql数据同步以及Redis使用场景

Redis和MySql的数据同步是我们开发中经常遇到的问题,怎么实现Redis和MySql之间的数据同步?

实际开发中我们经常采用如下方式实现Mysql和Redis数据同步:

当我们对MySQL数据库进行进行增删改的时候,我们在增删改的service层将缓存中的数据清除,用户请求过来的时候会先去缓存中查询数据,如果缓存中没有要查询的数据则去数据库中查询,然后将查询的结果放入缓存中并设置一个有效期,这个时候缓存中的数据就是最新的数据。

Redis使用场景:

1、热点数据的缓存

因为Redis访问速度块、支持的数据类型比较丰富,所以Redis很适合用来存储热点数据,另外我们可以设置数据过期时间,及时的更新缓存数据,这个使用场景非常的常见。

2、计数器

因为Redis的incrby命令可以实现原子性的操作,所以可以在高并发的秒杀活动中通过Redis的incrby命令控制库存、也可以它来控制接口的访问次数。

3、定时器

因为redis可以设置数据的有效期,我们可以把一些有时效性的数据放入redis.例如验证设置过期时间等

4、分布式锁

多个系统在Redis中set同一个key,只有key不存在的时候,才能设置成功,并且该key会对应其中一个系统的唯一标识,当该系统访问资源结束后,将key删除,则达到了释放锁的目的。在实现的时候要注意的几个关键点:

1、锁信息必须是会过期超时的,不能让一个线程长期占有一个锁而导致死锁;

2、同一时刻只能有一个线程获取到锁。

几个要用到的redis命令:

setnx(key, value):“set if not exits”,若该key-value不存在,则成功加入缓存并且返回1,否则返回0。

get(key):获得key对应的value值,若不存在则返回nil。

getset(key, value):先获取key对应的value值,若不存在则返回nil,然后将旧的value更新为新的value。

expire(key, seconds):设置key-value的有效期为seconds秒。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值