摘要:
一、主要需要解决的问题 1、加锁 创建临时带有顺序的节点,如果是第一个则,获取锁成功 2、解锁 删除自己创建的临时节点 3、死锁问题 临时节点,如果客户端down机了,则节点监听自动删除 4、锁等待与唤醒 每个等待的线程等待上一个节点删除,一旦删除,则自己被唤醒去获取锁 使用模板设计模式进行处理 二 阅读全文
摘要:
一、基本介绍 1 、PERSISTENT (0, false, false), 持久节点:节点创建后,会一直存在,不会因客户端会话失效而删除; 2、PERSISTENT_SEQUENTIAL (2, false, true), 持久顺序节点:基本特性与持久节点一致,创建节点的过程中,zookeepe 阅读全文
摘要:
一、 安装单节点 原则:数据目录,配置文件,日志目录需要挂载到宿主机上 创建目录存放挂在配置文件、日志、数据的目录 /root/zookeeper/zk1/conf /root/zookeeper/zk1/data /root/zookeeper/zk1/log 2. 添加配置文件 clientPo 阅读全文
摘要:
一、官网地址 https://github.com/redisson/redisson/wiki 二、整合配置 redisson 有些版本配置可能出现bug,开始用的3.13.6版本,哨兵配置一直报错 redisson 有些版本配置可能出现bug,开始用的3.13.6版本,哨兵配置一直报错 <dep 阅读全文
摘要:
主要测试下容器的主从如何搭建,主要使用一台虚拟机,部署三个容器,构成主从结构 一、部署的结构: 主:172.17.0.2 6379->6379 从1:映射端口 6380 -> 6379 从2:映射端口 6381 -> 6379 二、拉取Redis容器镜像 docker pull redis 三、下载 阅读全文
摘要:
一、分布式锁使用场景 单机系统的时候,当处理临界资源的时候需要使用synchronized来锁住资源,以免并发导致临界资源异常。 在分布式系统中,使用单机的锁已经不能控制临界资源了,这个时候就需要跨系统来控制临界资源,那控制的标识位放到哪里呢?可以是缓存redis,也可以是ZK。 直白的将,单机需要 阅读全文
摘要:
一、为什么使用Lua脚本 为了一次通信执行多个Redis命令,我们可以用pipline ,但是多个命令间没有逻辑联系 。 Lua脚本可以一次通信执行多个Redis命令,而且内部可以写自己的逻辑,整个脚本执行是原子性的。 二、命令行调用Lua脚本 EVAL script numkeys key [ke 阅读全文