remove redis (#12918)
Этот коммит содержится в:
коммит произвёл
George Goldberg
родитель
91f944f64d
Коммит
b3c0b5dd57
@@ -7,11 +7,6 @@ import (
|
||||
"context"
|
||||
|
||||
"github.com/mattermost/mattermost-server/einterfaces"
|
||||
"github.com/mattermost/mattermost-server/mlog"
|
||||
)
|
||||
|
||||
const (
|
||||
ENABLE_EXPERIMENTAL_REDIS = false
|
||||
)
|
||||
|
||||
type LayeredStoreDatabaseLayer interface {
|
||||
@@ -23,7 +18,6 @@ type LayeredStore struct {
|
||||
TmpContext context.Context
|
||||
DatabaseLayer LayeredStoreDatabaseLayer
|
||||
LocalCacheLayer *LocalCacheSupplier
|
||||
RedisLayer *RedisSupplier
|
||||
LayerChainHead LayeredStoreSupplier
|
||||
}
|
||||
|
||||
@@ -35,15 +29,8 @@ func NewLayeredStore(db LayeredStoreDatabaseLayer, metrics einterfaces.MetricsIn
|
||||
}
|
||||
|
||||
// Setup the chain
|
||||
if ENABLE_EXPERIMENTAL_REDIS {
|
||||
mlog.Debug("Experimental redis enabled.")
|
||||
store.RedisLayer = NewRedisSupplier()
|
||||
store.RedisLayer.SetChainNext(store.DatabaseLayer)
|
||||
store.LayerChainHead = store.RedisLayer
|
||||
} else {
|
||||
store.LocalCacheLayer.SetChainNext(store.DatabaseLayer)
|
||||
store.LayerChainHead = store.LocalCacheLayer
|
||||
}
|
||||
store.LocalCacheLayer.SetChainNext(store.DatabaseLayer)
|
||||
store.LayerChainHead = store.LocalCacheLayer
|
||||
|
||||
return store
|
||||
}
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
package store
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/gob"
|
||||
|
||||
"time"
|
||||
|
||||
"github.com/go-redis/redis"
|
||||
"github.com/mattermost/mattermost-server/mlog"
|
||||
)
|
||||
|
||||
const REDIS_EXPIRY_TIME = 30 * time.Minute
|
||||
|
||||
type RedisSupplier struct {
|
||||
next LayeredStoreSupplier
|
||||
client *redis.Client
|
||||
}
|
||||
|
||||
func GetBytes(key interface{}) ([]byte, error) {
|
||||
var buf bytes.Buffer
|
||||
enc := gob.NewEncoder(&buf)
|
||||
err := enc.Encode(key)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
func DecodeBytes(input []byte, thing interface{}) error {
|
||||
dec := gob.NewDecoder(bytes.NewReader(input))
|
||||
return dec.Decode(thing)
|
||||
}
|
||||
|
||||
func NewRedisSupplier() *RedisSupplier {
|
||||
supplier := &RedisSupplier{}
|
||||
|
||||
supplier.client = redis.NewClient(&redis.Options{
|
||||
Addr: "localhost:6379",
|
||||
Password: "",
|
||||
DB: 0,
|
||||
})
|
||||
|
||||
if _, err := supplier.client.Ping().Result(); err != nil {
|
||||
mlog.Error("Unable to ping redis server: " + err.Error())
|
||||
return nil
|
||||
}
|
||||
|
||||
return supplier
|
||||
}
|
||||
|
||||
func (s *RedisSupplier) save(key string, value interface{}, expiry time.Duration) error {
|
||||
if bytes, err := GetBytes(value); err != nil {
|
||||
return err
|
||||
} else {
|
||||
if err := s.client.Set(key, bytes, expiry).Err(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *RedisSupplier) load(key string, writeTo interface{}) (bool, error) {
|
||||
if data, err := s.client.Get(key).Bytes(); err != nil {
|
||||
if err == redis.Nil {
|
||||
return false, nil
|
||||
} else {
|
||||
return false, err
|
||||
}
|
||||
} else {
|
||||
if err := DecodeBytes(data, writeTo); err != nil {
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (s *RedisSupplier) SetChainNext(next LayeredStoreSupplier) {
|
||||
s.next = next
|
||||
}
|
||||
|
||||
func (s *RedisSupplier) Next() LayeredStoreSupplier {
|
||||
return s.next
|
||||
}
|
||||
Ссылка в новой задаче
Block a user