redis加锁的常用方式有哪几种


本文摘自PHP中文网,作者V,侵删。

常用的加锁方式有:

(学习视频分享:redis视频教程)

一、incr加锁

1

2

3

4

5

6

7

8

9

<?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加锁

1

2

3

4

<?php

$redis->setnx('name', 'felix');

var_dump($redis->get('name'));

var_dump($redis->ttl('name'));

三、set加锁

1

2

3

4

5

<?php

$redis->set('like', 'chuangxi', ['nx', 'ex' => 10]);

//$redis->del('like');

var_dump($redis->get('like'));

var_dump($redis->ttl('like'));

四、防止死锁

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<?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中的宕机什么意思

Redis怎么清除缓存

centos7.6安装mysql和Redis的教程

Redis和hbase的区别

Redis在哪里下载

centos将Redis配置为系统服务的方法

Redis一些常见的面试题(附答案)

php Redis队列如何实现历史搜索功能

Redis如何保证数据一致性

Redis支持windows吗

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...