美文网首页
分布式锁运用

分布式锁运用

作者: 爱上西瓜霜 | 来源:发表于2021-02-24 17:14 被阅读0次

    在初始化缓存数据的时候,如果有两个请求进来同时去请求数据,那么会出现数据错乱的情况,这时就需要添加锁来保证唯一性。

/*

* 查看是否有锁*/

$lock_key= config('lcok_department_list');

$lock= Redis::get($lock_key);

while ($lock){

//如果有锁,阻塞10毫秒

    usleep(10000);

    $lock= Redis::get($lock_key);

}

$key= config('department_list');

$list= Redis::hgetall($key);

if ($list){

    $list= array_map(function ($val){

        return json_decode($val,true);

    },$list);

    return $list;

}

/* 如果没有缓存,则添加锁*/

Redis::setex($lock_key,1,1);

$list= EDepartment::select(['adminid','title','isdisabled','depid as id'])->get()->toArray();

$list= array_column($list,null,'id');

$hash= array_map(function ($val){

    return json_encode($val,JSON_UNESCAPED_UNICODE);

},$list);

Redis::hmset($key,$hash);

/*设置完缓存,删除锁*/

Redis::del($lock_key);

return $list;

相关文章

  • 分布式锁运用

    在初始化缓存数据的时候,如果有两个请求进来同时去请求数据,那么会出现数据错乱的情况,这时就需要添加锁来保证唯一性。...

  • 深入学习Zookeeper(1)--基础总结

    一、Zookeeper简介 1.1. Zookeeper 简介   Zookeeper是一套分布式锁管理系统,运用...

  • 分布式锁

    为什么要用分布式锁 数据库乐观锁redis分布式锁zookeeper分布式锁 使用分布式锁的场景 实现分布式锁的方...

  • redis实现分布式锁

    一、分布式锁实现 原理:运用redis string类型存储策略进行实现。同时,设置string过期时间,防止死锁...

  • 什么是分布式锁?几种分布式锁分别是怎么实现的?

    一、什么是分布式锁: 1、什么是分布式锁: 分布式锁,即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资...

  • 4:Redis 分布式锁 (文末有项目连接)

    1:什么是缓存分布式锁 2:分布式锁的关键代码 3:业务代码使用分布式缓存锁 4:业务代码使用分布式缓存锁 5:测...

  • 锁(2)-- 分布式锁

    前言: 锁分3种:java锁、分布式锁、DB锁 分布式锁的几种实现方式 目前几乎很多大型网站及应用都是分布式部署...

  • java锁的概念

    参考文档探究分布式并发锁并发编程-锁的发展和主流分布式锁比较总结从构建分布式秒杀系统聊聊分布式锁探索并发编程(六)...

  • Redis实现分布式锁

    分布式下的分布式锁一般实现有三种: 基于数据库的乐观锁 基于redis的分布式锁 基于zookeeper的分布式锁...

  • 分布式锁

    为什么要用分布式锁? 分布式锁是悲观锁的实现; 如果采用乐观锁的方案就用不着分布式锁了。 能用乐观锁的地方尽量用乐...

网友评论

      本文标题:分布式锁运用

      本文链接:https://www.haomeiwen.com/subject/pqwsfltx.html