Redis分布式锁及其应用场景

RedLock分布式锁

  • 基于 Redis 实现分布式锁的方式名叫 Redlock

  • 安全特性:互斥访问,即永远只有一个 client 能拿到锁

  • 避免死锁:最终 client 都可能拿到锁,不会出现死锁的情况,即使原本锁住某资源的 client crash 了或者出现了网络分区(两个完全不连通的区域,美国的网咱们登不上去

  • 容错性:只要大部分 Redis 节点存活就可以正常提供服务

Redis集群及应用场景

热点数据

存取数据优先从 Redis 操作,如果不存在再从文件(例如 MySQL)中操作,从文件操作完后将数据存储到 Redis 中并返回。同时有个定时任务后台定时扫描 Redis 的 key,根据业务规则进行淘汰,防止某些只访问一两次的数据一直存在 Redis 中。

例如使用 Zset 数据结构,存储 Key 的访问次数/最后访问时间作为 Score,最后做排序,来淘汰那些最少访问的 Key。

回答: Redis分布式锁适用于多个应用实例之间需要协调互斥访问同一个资源的场景。它可以帮助我们控制分布式系统中对共享资源的访问,避免并发问题和重复操作。常见的使用场景包括: 1. 分布式任务调度:多个应用实例需要定时执行某个任务,通过使用分布式锁可以确保只有一个实例执行任务,避免重复执行。 2. 分布式缓存更新:多个应用实例需要同时更新某个缓存数据,通过使用分布式锁可以保证只有一个实例进行更新,避免数据不一致。 3. 分布式资源竞争:多个应用实例需要竞争某个资源,例如分布式锁可以用于实现分布式限流、分布式排他性操作等场景。 需要注意的是,分布式锁的实现需要考虑到高并发、死、误删等问题,需要根据具体的应用场景进行优化和测试。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Redis 分布式锁的实现原理和应用场景](https://blog.csdn.net/weixin_43025343/article/details/131081958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Redis实现分布式锁及其应用场景](https://blog.csdn.net/Crime11/article/details/130132324)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值