《Redis使用手册》(试读版)示例:锁 锁是⼀种同步机制, 它可以保证⼀项资源在任何时候只能被⼀个进程使⽤, 如果有其他进程想要使⽤相同的资 源, 那么它们就必须等待, 直到正在使⽤资源的进程放弃使⽤权为⽌。 ⼀个锁实现通常会有获取(acquire)和释放(release)这两种操作: 获取操作⽤于取得资源的独占使⽤权。 在任何时候, 最多只能有⼀个进程取得锁, 我们把成功取得锁的这 个进程称之为锁的持有者。 在锁已经被持有的情况下, 所有尝试再次获取锁的操作都会失败。 释放操作⽤于放弃资源的独占使⽤权, ⼀般由锁的持有者调⽤。 在锁被释放之后, 其他进程就可以再次尝 试获取这个锁了。 代码清单 2-2 展示了⼀个使⽤字符串键实现的锁程序, 这个程序会根据给定的字符串键是否有值来判断锁是否已 经被获取, ⽽针对锁的获取操作和释放操作则是分别通过设置字符串键和删除字符串键来完成的。 代码清单 2-2 使⽤字符串键实现的锁程序:/string/lock self.client = client self.key = key def acquire(self): """ 尝试获取锁。 成功时返回 True ,失败时返回 False 。 """ result = self.client.set(self.key, VALUE_OF_LOCK0 码力 | 352 页 | 6.57 MB | 1 年前3
Redis 多数据中心双向同步 祝辰一个数据中心的部署方 式转变为多数据中心, 甚 至是跨区域的部署模式 多区域部署 Serverless 分布式存储 Redis 内存数 据库 支持多种 数据结构 支持主 从架构 缓存服务 分布式锁 消息队列 计数器 目前携程的 Redis 部署架构 通过携程的 X-Pipe 项目, 来达到 Redis 跨站点和跨区域的数据同步问题 目前已经支持上海到美国和德国的 Redis 数据同步0 码力 | 45 页 | 1.74 MB | 1 年前3
共 2 条
- 1













