本文摘自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' );
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]);
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 ->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》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » redis加锁的常用方式有哪几种