redis與 mysql事務的對比
在mutil後面的語句中, 語句出錯可能有2種情況
redis 鎖
redis流水線
效能測試
<?php
set_time_limit(0);
ini_set('memory_limit','1024m');
$redis = new redis();
g('1');
$redis->connect('127.0.0.1');
//不具備原子性 ,管道
$redis->pipeline();
for ($i=0;$i<100000;$i++)
",pow($i,2));
$redis->get("test_");
}$redis->exec();
$redis->close();
g('1','e');
g('2');
$redis->connect('127.0.0.1');
//事物具備原子性
$redis->multi();
for ($i=0;$i<100000;$i++)
",pow($i,2));
$redis->get("test_");
}$redis->exec();
$redis->close();
g('2','e');
//普通
g('3');
$redis->connect('127.0.0.1');
//事物具備原子性
for ($i=0;$i<100000;$i++)
",pow($i,2));
$redis->get("test_");
}$redis->close();
g('3','e');
function g($star,$end = '')
else
}//測試輸出的結果:
0.043839931488037ms
0.4456958770752ms
0.45916604995728ms
redis 事務和鎖
何為事務 redis事務就是乙個命令執行的佇列,將一些命令包裝為乙個整體,在執行時,一次性全部依次執行,中間不會被打斷。注意事項 若multi開啟事務後,後續指令存在語法錯誤,則指令佇列被銷毀。事務停止。事務的基本操作 1 multi 開啟事務 2 exec 執行事務 3 discard 取消事務,...
redis事務和鎖
redis事務就是乙個命令執行的佇列,將一系列預定義命令包裝成乙個整體 乙個佇列 當執行時,一次性按照新增順序依次執行,中間不會被打斷或者干擾。事務的基本操作 開啟事務 multi 作用 設定事務的開啟位置,此指令執行後,後續的所有指令均加入到事務中 執行事務 exec 作用 設定事務的結束位置,同...
Redis事務 事務鎖
一旦成功所有的成功,乙個失敗,所有一些列連續動作都失敗 事務的基本操作 注意 加入事務的命令暫時到任務佇列中,並沒有立即執行,只有執行exec命令才開始執行事務定義過程中發現問題,怎麼辦?discard 事務的工作流程 事務的注意事項 手動進行事務回滾 業務場景1 業務分析 基於特定條件的事務執行 ...