@ -3,10 +3,12 @@ package cache
import (
import (
"bytes"
"bytes"
"encoding/gob"
"encoding/gob"
"github.com/cloudreve/Cloudreve/v4/pkg/logging"
"strconv"
"strconv"
"time"
"time"
"github.com/cloudreve/Cloudreve/v4/pkg/conf"
"github.com/cloudreve/Cloudreve/v4/pkg/logging"
"github.com/gomodule/redigo/redis"
"github.com/gomodule/redigo/redis"
)
)
@ -44,7 +46,7 @@ func deserializer(value []byte) (any, error) {
}
}
// NewRedisStore 创建新的redis存储
// NewRedisStore 创建新的redis存储
func NewRedisStore ( l logging . Logger , size int , network, address , user , password , database string ) * RedisStore {
func NewRedisStore ( l logging . Logger , size int , redisConfig * conf . Redis ) * RedisStore {
return & RedisStore {
return & RedisStore {
pool : & redis . Pool {
pool : & redis . Pool {
MaxIdle : size ,
MaxIdle : size ,
@ -54,17 +56,19 @@ func NewRedisStore(l logging.Logger, size int, network, address, user, password,
return err
return err
} ,
} ,
Dial : func ( ) ( redis . Conn , error ) {
Dial : func ( ) ( redis . Conn , error ) {
db , err := strconv . Atoi ( database )
db , err := strconv . Atoi ( redisConfig. DB )
if err != nil {
if err != nil {
return nil , err
return nil , err
}
}
c , err := redis . Dial (
c , err := redis . Dial (
network,
redisCo nfig. N etwork,
address ,
redisConfig. Server ,
redis . DialDatabase ( db ) ,
redis . DialDatabase ( db ) ,
redis . DialPassword ( password ) ,
redis . DialPassword ( redisConfig . Password ) ,
redis . DialUsername ( user ) ,
redis . DialUsername ( redisConfig . User ) ,
redis . DialUseTLS ( redisConfig . UseTLS ) ,
redis . DialTLSSkipVerify ( redisConfig . TLSSkipVerify ) ,
)
)
if err != nil {
if err != nil {
l . Panic ( "Failed to create Redis connection: %s" , err )
l . Panic ( "Failed to create Redis connection: %s" , err )