SSDB[实战系列]
官方文档
简述
SSDB是一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis, 个人觉得不靠谱, 刚好工作用到,发现竟然没有
set ex nx
这个原子命令
快速启动
composer require phpfastcache/phpssdb
创建单例
<?php
namespace app\index\model;
use phpssdb\Core\SimpleSSDB;
use think\Config;
use think\Log;
class ssdb
{
private static $instance;
private $conn;
public static function getInstance()
{
if (!isset(self::$instance)) {
self::$instance = new self;
}
return self::$instance;
}
private function __construct()
{
try {
$ssdb = new SimpleSSDB(Config::get('ssdb.SSDB_HOST'), Config::get('ssdb.SSDB_PORT'), 2000);
$ssdb->auth(Config::get('ssdb.SSDB_PWD'));
$ssdb->easy();
$this->conn = $ssdb;
} catch (\Exception $e) {
Log::error('SSDB exception' . $e->getMessage());
}
}
public function getConnection()
{
return $this->conn;
}
private function __clone()
{
}
private function __wakeup()
{
}
}
同一个订单号十分钟内不允许重复提交
$ssdb = ssdb::getInstance();
$conn = $ssdb->getConnection();
$ssdb_key = 'out_trade_no:' . $bid . ':' . $out_trade_no;
$ret = $conn->setnx($ssdb_key, 1);
if ($ret) {
$conn->expire($ssdb_key, 600);
} else {
//重复提交
}
本作品采用《CC 协议》,转载必须注明作者和本文链接