redis db
This commit is contained in:
parent
5a438ce485
commit
bbf8875e30
|
|
@ -10,17 +10,17 @@ data:
|
|||
driver: mysql
|
||||
source: root:lansexiongdi6,@tcp(47.97.27.195:3306)/voucher?parseTime=True&loc=Local
|
||||
maxIdle: 100 #最大的空闲连接数
|
||||
maxOpen: 2000 #最大连接数,0表示不受限制
|
||||
maxLifetime: 30s #连接复用的最大生命周期
|
||||
maxOpen: 1000 #最大连接数,0表示不受限制
|
||||
maxLifetime: 300s #连接复用的最大生命周期
|
||||
isDebug: false
|
||||
redis: #没有则注释此属性
|
||||
addr: 47.97.27.195:6379
|
||||
password: lansexiongdi@666
|
||||
readTimeout: 5s
|
||||
writeTimeout: 5s
|
||||
poolSize: 30 #连接池大小,不配置,或配置为0表示不启用连接池
|
||||
minIdleConns: 10 #最小空闲连接数
|
||||
connMaxIdleTime: 30s #每个连接最大空闲时间,如果超过了这个时间会被关闭
|
||||
poolSize: 100 #连接池大小,不配置,或配置为0表示不启用连接池
|
||||
minIdleConns: 50 #最小空闲连接数
|
||||
connMaxIdleTime: 60s #每个连接最大空闲时间,如果超过了这个时间会被关闭
|
||||
db: 3
|
||||
|
||||
rocketMQ:
|
||||
|
|
|
|||
|
|
@ -9,18 +9,18 @@ data:
|
|||
db:
|
||||
driver: mysql
|
||||
source: root:lansexiongdi6,@tcp(47.97.27.195:3306)/voucher?parseTime=True&loc=Local
|
||||
maxIdle: 3000 #最大的空闲连接数
|
||||
maxOpen: 3000 #最大连接数,0表示不受限制
|
||||
maxLifetime: 60s #连接复用的最大生命周期
|
||||
maxIdle: 100 #最大的空闲连接数
|
||||
maxOpen: 1000 #最大连接数,0表示不受限制
|
||||
maxLifetime: 300s #连接复用的最大生命周期
|
||||
isDebug: false
|
||||
redis: #没有则注释此属性
|
||||
addr: 47.97.27.195:6379
|
||||
password: lansexiongdi@666
|
||||
readTimeout: 5s
|
||||
writeTimeout: 5s
|
||||
poolSize: 1000 #连接池大小,不配置,或配置为0表示不启用连接池
|
||||
minIdleConns: 100 #最小空闲连接数
|
||||
connMaxIdleTime: 30s #每个连接最大空闲时间,如果超过了这个时间会被关闭
|
||||
poolSize: 100 #连接池大小,不配置,或配置为0表示不启用连接池
|
||||
minIdleConns: 50 #最小空闲连接数
|
||||
connMaxIdleTime: 60s #每个连接最大空闲时间,如果超过了这个时间会被关闭
|
||||
db: 3
|
||||
|
||||
rocketMQ:
|
||||
|
|
|
|||
|
|
@ -28,8 +28,12 @@ func db(data *conf.Data_Database) (*gorm.DB, func()) {
|
|||
mysqlConn, err := sql.Open(data.Driver, data.Source)
|
||||
|
||||
gormDB, err := gorm.Open(
|
||||
mysql.New(mysql.Config{Conn: mysqlConn}),
|
||||
&gorm.Config{Logger: logger.Default.LogMode(logger.Info)},
|
||||
mysql.New(mysql.Config{
|
||||
Conn: mysqlConn,
|
||||
}),
|
||||
&gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
},
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
package data
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"google.golang.org/protobuf/types/known/durationpb"
|
||||
"gorm.io/gorm"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
"voucher/internal/conf"
|
||||
"voucher/internal/data/model"
|
||||
)
|
||||
|
||||
func Test_db(t *testing.T) {
|
||||
maxLifetime := durationpb.New(300) // 5分钟
|
||||
data := &conf.Data_Database{
|
||||
Driver: "mysql",
|
||||
Source: "root:lansexiongdi6,@tcp(47.97.27.195:3306)/voucher?parseTime=True&loc=Local",
|
||||
MaxIdle: 50, // 空闲连接池
|
||||
MaxOpen: 100, // 最大连接数
|
||||
MaxLifetime: maxLifetime,
|
||||
IsDebug: false,
|
||||
}
|
||||
gormDb, cleanup := db(data)
|
||||
defer cleanup()
|
||||
|
||||
start2 := time.Now()
|
||||
errCount := 0
|
||||
var wg sync.WaitGroup
|
||||
const concurrency = 50 // 调整并发数
|
||||
wg.Add(concurrency)
|
||||
|
||||
for i := 0; i < concurrency; i++ {
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
|
||||
var order model.Order
|
||||
tx := gormDb.First(&order)
|
||||
if tx.Error != nil {
|
||||
if errors.Is(tx.Error, gorm.ErrRecordNotFound) {
|
||||
t.Errorf("未找到记录")
|
||||
} else {
|
||||
fmt.Printf("请求错误: %v\n", tx.Error)
|
||||
errCount += 1
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
wg.Wait()
|
||||
fmt.Printf("\n--------------连接请求,总请求耗时: %v,失败次数: %d--------------\n", time.Since(start2), errCount)
|
||||
}
|
||||
|
|
@ -75,7 +75,7 @@ func (p *OrderRepoImpl) Create(ctx context.Context, req *bo.OrderBo) (*bo.OrderB
|
|||
|
||||
tx := p.db.DB(ctx).Create(info)
|
||||
if tx.Error != nil {
|
||||
return nil, fmt.Errorf("db fail %w", tx.Error)
|
||||
return nil, fmt.Errorf("create db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return p.ToBo(info), nil
|
||||
|
|
@ -181,7 +181,7 @@ func (p *OrderRepoImpl) Success(ctx context.Context, id uint64, voucherNo string
|
|||
})
|
||||
|
||||
if tx.Error != nil {
|
||||
return fmt.Errorf("db fail %w", tx.Error)
|
||||
return fmt.Errorf("update db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -202,7 +202,7 @@ func (p *OrderRepoImpl) Available(ctx context.Context, id uint64) error {
|
|||
})
|
||||
|
||||
if tx.Error != nil {
|
||||
return fmt.Errorf("db fail %w", tx.Error)
|
||||
return fmt.Errorf("update db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -229,7 +229,7 @@ func (p *OrderRepoImpl) Fail(ctx context.Context, id uint64, remark string) erro
|
|||
})
|
||||
|
||||
if tx.Error != nil {
|
||||
return fmt.Errorf("db fail %w", tx.Error)
|
||||
return fmt.Errorf("update db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -249,7 +249,7 @@ func (p *OrderRepoImpl) Used(ctx context.Context, id uint64) error {
|
|||
})
|
||||
|
||||
if tx.Error != nil {
|
||||
return fmt.Errorf("db fail %w", tx.Error)
|
||||
return fmt.Errorf("update db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
@ -268,7 +268,7 @@ func (p *OrderRepoImpl) Expired(ctx context.Context, id uint64) error {
|
|||
})
|
||||
|
||||
if tx.Error != nil {
|
||||
return fmt.Errorf("db fail %w", tx.Error)
|
||||
return fmt.Errorf("update db fail %w", tx.Error)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
|
|
|||
Loading…
Reference in New Issue