本文摘自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之django-Redis使用
Redis一般缓存哪些数据
你知道Redis的8大应用场景是什么吗!
Redis可视化工具哪个好
Redis三种部署方案图文详解
Redis存储方式有哪些
Redisdesktopmanager怎么安装
如何理解mysql锁机制
Redis集合的相关命令有哪些
windows下打开Redis后闪退怎么办
更多相关阅读请进入《Redis》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » redis加锁的常用方式有哪几种