Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-user
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenweijian
hilo-user
Commits
6a985428
Commit
6a985428
authored
Aug 31, 2023
by
iamhujiebin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:redisCluster
parent
762c4962
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
27 additions
and
54 deletions
+27
-54
debug.ini
debug.ini
+2
-0
modelRedis.go
domain/cache/modelRedis.go
+4
-4
user.go
domain/cache/user_c/user.go
+4
-4
cache_medal.go
domain/model/common/cache_medal.go
+9
-44
medal.go
domain/model/user_m/medal.go
+2
-2
local.ini
local.ini
+2
-0
main.go
main.go
+2
-0
release.ini
release.ini
+2
-0
No files found.
debug.ini
View file @
6a985428
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
[REDIS]
REDIS_HOST
=
47.244.34.27:6379
REDIS_HOST
=
47.244.34.27:6379
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_CLUSTER_HOST
=
47.244.34.27:6379
REDIS_CLUSTER_PASSWORD
=
8QZ9JD1zLvPR3yHf
[JWT]
[JWT]
SECRET
=
hilo1632
SECRET
=
hilo1632
ISSUER_API
=
hiloApi
ISSUER_API
=
hiloApi
...
...
domain/cache/modelRedis.go
View file @
6a985428
...
@@ -27,7 +27,7 @@ func SetJSON(model *domain.Model, key string, obj interface{}) (err error) {
...
@@ -27,7 +27,7 @@ func SetJSON(model *domain.Model, key string, obj interface{}) (err error) {
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
return
model
.
Redis
.
Set
(
model
.
Context
,
key
,
value
,
DEFAULT_TTL
)
.
Err
()
return
model
.
Redis
Cluster
.
Set
(
model
.
Context
,
key
,
value
,
DEFAULT_TTL
)
.
Err
()
}
}
// 获取redis中json结构体
// 获取redis中json结构体
...
@@ -37,7 +37,7 @@ func GetJSON(model *domain.Model, key string, obj interface{}) (err error) {
...
@@ -37,7 +37,7 @@ func GetJSON(model *domain.Model, key string, obj interface{}) (err error) {
defer
func
()
{
defer
func
()
{
model
.
Log
.
Infof
(
"GetJson key:%v,value:%s,obj:%v,err:%v"
,
key
,
value
,
obj
,
err
)
model
.
Log
.
Infof
(
"GetJson key:%v,value:%s,obj:%v,err:%v"
,
key
,
value
,
obj
,
err
)
}()
}()
value
,
err
=
model
.
Redis
.
Get
(
model
.
Context
,
key
)
.
Bytes
()
value
,
err
=
model
.
Redis
Cluster
.
Get
(
model
.
Context
,
key
)
.
Bytes
()
if
err
!=
nil
{
if
err
!=
nil
{
// may redisV2.Nil
// may redisV2.Nil
return
return
...
@@ -59,7 +59,7 @@ func TryLock(model *domain.Model, key string, acquireTimeout, expireTimeout time
...
@@ -59,7 +59,7 @@ func TryLock(model *domain.Model, key string, acquireTimeout, expireTimeout time
if
time
.
Now
()
.
After
(
deadline
)
{
if
time
.
Now
()
.
After
(
deadline
)
{
return
false
return
false
}
}
flag
,
err
:=
model
.
Redis
.
SetNX
(
model
,
key
,
"1"
,
expireTimeout
)
.
Result
()
flag
,
err
:=
model
.
Redis
Cluster
.
SetNX
(
model
,
key
,
"1"
,
expireTimeout
)
.
Result
()
if
err
!=
nil
||
!
flag
{
if
err
!=
nil
||
!
flag
{
time
.
Sleep
(
time
.
Millisecond
*
10
)
time
.
Sleep
(
time
.
Millisecond
*
10
)
}
else
{
}
else
{
...
@@ -70,5 +70,5 @@ func TryLock(model *domain.Model, key string, acquireTimeout, expireTimeout time
...
@@ -70,5 +70,5 @@ func TryLock(model *domain.Model, key string, acquireTimeout, expireTimeout time
// 解锁
// 解锁
func
UnLock
(
model
*
domain
.
Model
,
key
string
)
{
func
UnLock
(
model
*
domain
.
Model
,
key
string
)
{
model
.
Redis
.
Del
(
model
,
key
)
model
.
Redis
Cluster
.
Del
(
model
,
key
)
}
}
domain/cache/user_c/user.go
View file @
6a985428
...
@@ -53,7 +53,7 @@ func ToUserId(model *domain.Model, externalId mysql.Str) (mysql.ID, error) {
...
@@ -53,7 +53,7 @@ func ToUserId(model *domain.Model, externalId mysql.Str) (mysql.ID, error) {
if
externalId
==
""
{
if
externalId
==
""
{
return
0
,
myerr
.
NewSysError
(
"externalId 不能为空"
)
return
0
,
myerr
.
NewSysError
(
"externalId 不能为空"
)
}
}
userId
,
err
:=
model
.
Redis
.
Get
(
model
.
Context
,
user_k
.
GetExternalIdToUidKey
(
externalId
))
.
Int64
()
userId
,
err
:=
model
.
Redis
Cluster
.
Get
(
model
.
Context
,
user_k
.
GetExternalIdToUidKey
(
externalId
))
.
Int64
()
if
err
!=
nil
&&
err
!=
redisV8
.
Nil
{
if
err
!=
nil
&&
err
!=
redisV8
.
Nil
{
return
0
,
err
return
0
,
err
}
}
...
@@ -76,7 +76,7 @@ func ToUserIdByCode(model *domain.Model, code mysql.Str) (mysql.ID, error) {
...
@@ -76,7 +76,7 @@ func ToUserIdByCode(model *domain.Model, code mysql.Str) (mysql.ID, error) {
if
code
==
""
{
if
code
==
""
{
return
0
,
myerr
.
NewSysError
(
"code 不能为空"
)
return
0
,
myerr
.
NewSysError
(
"code 不能为空"
)
}
}
userId
,
err
:=
model
.
Redis
.
Get
(
model
.
Context
,
user_k
.
GetCodeToUidKey
(
code
))
.
Int64
()
userId
,
err
:=
model
.
Redis
Cluster
.
Get
(
model
.
Context
,
user_k
.
GetCodeToUidKey
(
code
))
.
Int64
()
if
err
!=
nil
&&
err
!=
redisV8
.
Nil
{
if
err
!=
nil
&&
err
!=
redisV8
.
Nil
{
return
0
,
err
return
0
,
err
}
}
...
@@ -105,11 +105,11 @@ func cacheUserTiny(model *domain.Model, user *user_m.User) error {
...
@@ -105,11 +105,11 @@ func cacheUserTiny(model *domain.Model, user *user_m.User) error {
// return err
// return err
//}
//}
// cache externalId->userId
// cache externalId->userId
if
err
:=
model
.
Redis
.
SetEX
(
model
.
Context
,
user_k
.
GetExternalIdToUidKey
(
user
.
ExternalId
),
user
.
ID
,
cache
.
GetDefaultTTL
())
.
Err
();
err
!=
nil
{
if
err
:=
model
.
Redis
Cluster
.
SetEX
(
model
.
Context
,
user_k
.
GetExternalIdToUidKey
(
user
.
ExternalId
),
user
.
ID
,
cache
.
GetDefaultTTL
())
.
Err
();
err
!=
nil
{
return
err
return
err
}
}
// cache code->userId
// cache code->userId
if
err
:=
model
.
Redis
.
SetEX
(
model
.
Context
,
user_k
.
GetCodeToUidKey
(
user
.
Code
),
user
.
ID
,
cache
.
GetDefaultTTL
())
.
Err
();
err
!=
nil
{
if
err
:=
model
.
Redis
Cluster
.
SetEX
(
model
.
Context
,
user_k
.
GetCodeToUidKey
(
user
.
Code
),
user
.
ID
,
cache
.
GetDefaultTTL
())
.
Err
();
err
!=
nil
{
return
err
return
err
}
}
if
err
:=
cache
.
SetJSON
(
model
,
user_k
.
GetUserTinyKey
(
user
.
ID
),
userTiny
);
err
!=
nil
{
if
err
:=
cache
.
SetJSON
(
model
,
user_k
.
GetUserTinyKey
(
user
.
ID
),
userTiny
);
err
!=
nil
{
...
...
domain/model/common/cache_medal.go
View file @
6a985428
package
common
package
common
import
(
import
(
"context"
"encoding/json"
"git.hilo.cn/hilo-common/mylogrus"
"git.hilo.cn/hilo-common/resource/mysql"
"git.hilo.cn/hilo-common/resource/mysql"
"git.hilo.cn/hilo-common/resource/redisCli"
"github.com/bluele/gcache"
"hilo-user/_const/redis_key"
"hilo-user/myerr"
"time"
"time"
)
)
func
GetUserMedalMergeCache
(
userId
mysql
.
ID
)
([]
uint32
,
error
)
{
// 改成lru
bData
,
err
:=
GetCache
(
redis_key
.
GetUserMedalMerge
(
userId
))
var
userMedalMergeLru
=
gcache
.
New
(
10000
)
.
LRU
()
.
Build
()
if
err
!=
nil
{
return
nil
,
myerr
.
WrapErr
(
err
)
}
res
:=
make
([]
uint32
,
0
)
err
=
json
.
Unmarshal
(
bData
,
&
res
)
if
err
!=
nil
{
return
nil
,
myerr
.
WrapErr
(
err
)
}
return
res
,
nil
}
func
GetCache
(
key
string
)
([]
byte
,
error
)
{
func
GetUserMedalMergeCache
(
userId
mysql
.
ID
)
([]
uint32
,
error
)
{
data
,
err
:=
redisCli
.
GetRedis
()
.
Get
(
context
.
Background
(),
key
)
.
Bytes
()
if
data
,
err
:=
userMedalMergeLru
.
Get
(
userId
);
err
==
nil
{
if
err
!=
nil
{
return
data
.
([]
uint32
),
nil
return
nil
,
err
}
return
data
,
nil
}
func
SetCache
(
key
string
,
data
interface
{},
expire
time
.
Duration
)
error
{
jData
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
return
err
}
err
=
redisCli
.
GetRedis
()
.
Set
(
context
.
Background
(),
key
,
jData
,
expire
)
.
Err
()
if
err
!=
nil
{
mylogrus
.
MyLog
.
Errorf
(
"SetCache key:%s, data:%v, err:%s"
,
key
,
data
,
err
)
return
err
}
}
return
nil
return
nil
,
nil
}
}
func
SetUserMedalMergeCache
(
userId
mysql
.
ID
,
data
[]
uint32
)
error
{
func
SetUserMedalMergeCache
(
userId
mysql
.
ID
,
data
[]
uint32
)
{
err
:=
SetCache
(
redis_key
.
GetUserMedalMerge
(
userId
),
data
,
time
.
Hour
*
2
)
_
=
userMedalMergeLru
.
SetWithExpire
(
userId
,
data
,
time
.
Minute
*
15
)
if
err
!=
nil
{
mylogrus
.
MyLog
.
Errorf
(
"SetUserMedalMerge err:%s"
,
err
)
return
myerr
.
WrapErr
(
err
)
}
return
nil
}
}
domain/model/user_m/medal.go
View file @
6a985428
...
@@ -61,8 +61,8 @@ func GetUserMedalMerge(logger *logrus.Entry, db *gorm.DB, userId mysql.ID) ([]ui
...
@@ -61,8 +61,8 @@ func GetUserMedalMerge(logger *logrus.Entry, db *gorm.DB, userId mysql.ID) ([]ui
}
}
}
}
}
}
logger
.
Infof
(
"maxGrade %+v"
,
maxGrades
)
//
logger.Infof("maxGrade %+v", maxGrades)
logger
.
Infof
(
"maxMedalIds %+v"
,
maxMedalIds
)
//
logger.Infof("maxMedalIds %+v", maxMedalIds)
mIds
:=
result
mIds
:=
result
result
=
make
([]
uint32
,
0
)
result
=
make
([]
uint32
,
0
)
...
...
local.ini
View file @
6a985428
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
[REDIS]
REDIS_HOST
=
47.244.34.27:6379
REDIS_HOST
=
47.244.34.27:6379
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_PASSWORD
=
8QZ9JD1zLvPR3yHf
REDIS_CLUSTER_HOST
=
47.244.34.27:6379
REDIS_CLUSTER_PASSWORD
=
8QZ9JD1zLvPR3yHf
[JWT]
[JWT]
SECRET
=
hilo1632
SECRET
=
hilo1632
ISSUER_API
=
hiloApi
ISSUER_API
=
hiloApi
...
...
main.go
View file @
6a985428
...
@@ -3,6 +3,7 @@ package main
...
@@ -3,6 +3,7 @@ package main
import
(
import
(
"fmt"
"fmt"
"git.hilo.cn/hilo-common/resource/consul"
"git.hilo.cn/hilo-common/resource/consul"
"git.hilo.cn/hilo-common/resource/redisCli"
"hilo-user/cron"
"hilo-user/cron"
"hilo-user/domain/service/event_s"
"hilo-user/domain/service/event_s"
"hilo-user/route"
"hilo-user/route"
...
@@ -17,6 +18,7 @@ const (
...
@@ -17,6 +18,7 @@ const (
func
main
()
{
func
main
()
{
cron
.
Init
()
// 开启定时任务
cron
.
Init
()
// 开启定时任务
event_s
.
EventInit
()
// 注册事件(内部事件+mysql拟kafka)
event_s
.
EventInit
()
// 注册事件(内部事件+mysql拟kafka)
redisCli
.
InitCluster
()
// redis集群
r
:=
route
.
InitRouter
()
// 注册路由
r
:=
route
.
InitRouter
()
// 注册路由
consul
.
RegisterToConsul
(
PORT
,
RegisterName
,
RegisterTag
)
// 服务注册
consul
.
RegisterToConsul
(
PORT
,
RegisterName
,
RegisterTag
)
// 服务注册
r
.
Run
(
fmt
.
Sprintf
(
":%d"
,
PORT
))
// 启动服务
r
.
Run
(
fmt
.
Sprintf
(
":%d"
,
PORT
))
// 启动服务
...
...
release.ini
View file @
6a985428
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
...
@@ -11,6 +11,8 @@ MYSQL_DB=hilo_code
[REDIS]
[REDIS]
REDIS_HOST
=
r-eb3btxn8vfdsuwdbuf.redis.dubai.rds.aliyuncs.com:6379
REDIS_HOST
=
r-eb3btxn8vfdsuwdbuf.redis.dubai.rds.aliyuncs.com:6379
REDIS_PASSWORD
=
REDIS_PASSWORD
=
REDIS_CLUSTER_HOST
=
r-eb3yt6k8zgxs62kjjs.redis.dubai.rds.aliyuncs.com:6379
REDIS_CLUSTER_PASSWORD
=
[JWT]
[JWT]
SECRET
=
hilo1504
SECRET
=
hilo1504
ISSUER_API
=
hiloApi
ISSUER_API
=
hiloApi
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment