浅谈redis加锁常用几种方式

 更新时间:2020年12月17日 10:37:15   作者:autofelix  
这篇文章主要介绍了浅谈redis加锁常用几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、incr加锁

<?php
$redis = new Redis();
$redis->connect('127.0.0.1');
$redis->multi();
$redis->incr('number');
//$redis->decr('number');
//$redis->expire('number', -1);
var_dump($redis->get('number'));
var_dump($redis->ttl('number'));


二、setnx加锁

<?php
$redis->setnx('name', 'felix');
var_dump($redis->get('name'));
var_dump($redis->ttl('name'));

三、set加锁

<?php
$redis->set('like', 'chuangxi', ['nx', 'ex' => 10]);
//$redis->del('like');
var_dump($redis->get('like'));
var_dump($redis->ttl('like'));

四、防止死锁

<?php
$isLock = false;
do {
  $isLock = $redis->set('like', 'a', ['nx', 'ex' => 10]);
  if($isLock) {
    if($redis->get('like') == 'a') {
      //执行逻辑
      $redis->del('like');
      continue;
    }
  } else {
    usleep(5000);
  }
} while (!$isLock);
 
//redis事务
$redis->set();
$redis->watch(['number', 'like']);

到此这篇关于浅谈redis加锁常用几种方式的文章就介绍到这了,更多相关redis 加锁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis Sentinel服务配置流程(详解)

    Redis Sentinel服务配置流程(详解)

    下面小编就为大家带来一篇Redis Sentinel服务配置流程(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Redis击穿穿透雪崩产生原因分析及解决思路面试

    Redis击穿穿透雪崩产生原因分析及解决思路面试

    这篇文章主要为大家介绍了Redis击穿穿透雪崩产生原因及解决思路的面试问题答案参考,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步
    2022-03-03
  • RedisTemplate序列化设置的流程和具体步骤

    RedisTemplate序列化设置的流程和具体步骤

    在使用 Redis 作为缓存数据库时,我们通常会使用 RedisTemplate 来简化与 Redis 进行交互的操作,而其中一个重要的配置项就是序列化设置,它决定了数据在存储到 Redis 中时的格式,本文将介绍如何进行 RedisTemplate 的序列化设置,以及一些常见的序列化方案
    2024-11-11
  • Redis 数据库忘记密码找回或重置的解决方法

    Redis 数据库忘记密码找回或重置的解决方法

    对于 Redis 数据库,如果忘记了密码,可以通过密码重置来找回密码,今天通过本文给大家分享Redis 数据库忘记密码找回或重置的解决方法,感兴趣的朋友一起看看吧
    2024-01-01
  • Redis优化token校验主动失效的实现方案

    Redis优化token校验主动失效的实现方案

    在普通的token颁发和校验中 当用户发现自己账号和密码被暴露了时修改了登录密码后旧的token仍然可以通过系统校验直至token到达失效时间,所以系统需要token主动失效的一种能力,所以本文给大家介绍了Redis优化token校验主动失效的实现方案,需要的朋友可以参考下
    2024-03-03
  • 在Ubuntu 14.04系统上备份和恢复Redis数据详细步骤

    在Ubuntu 14.04系统上备份和恢复Redis数据详细步骤

    这篇文章主要给大家介绍了关于在Ubuntu 14.04系统上备份和恢复Redis数据的详细步骤,文中通过代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-04-04
  • 基于 Redis 的 JWT令牌失效处理方案(实现步骤)

    基于 Redis 的 JWT令牌失效处理方案(实现步骤)

    当用户登录状态到登出状态时,对应的JWT的令牌需要设置为失效状态,这时可以使用基于Redis 的黑名单方案来实现JWT令牌失效,本文给大家分享基于 Redis 的 JWT令牌失效处理方案,感兴趣的朋友一起看看吧
    2024-03-03
  • Linux系统下安装Redis数据库过程

    Linux系统下安装Redis数据库过程

    大家好,本篇文章主要讲的是Linux系统下安装Redis数据库过程,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 详解redis缓存与数据库一致性问题解决

    详解redis缓存与数据库一致性问题解决

    这篇文章主要介绍了详解redis缓存与数据库一致性问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 如何在centos中安装redis插件bloom-filter

    如何在centos中安装redis插件bloom-filter

    布隆过滤器在第一次add的时候自动创建基于默认参数的过滤器,Redis还提供了自定义参数的布隆过滤器,下面这篇文章主要给大家介绍了关于如何在centos中安装redis插件bloom-filter的相关资料,需要的朋友可以参考下
    2021-11-11

最新评论