mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-18 03:35:10 +08:00
优化缓存管理
This commit is contained in:
@@ -9,21 +9,20 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestMemoryStorage_Open(t *testing.T) {
|
||||
func TestMemoryStorage_OpenWriter(t *testing.T) {
|
||||
storage := NewMemoryStorage(&serverconfigs.HTTPCachePolicy{})
|
||||
|
||||
writer, err := storage.Open("abc", time.Now().Unix()+60)
|
||||
writer, err := storage.OpenWriter("abc", time.Now().Unix()+60, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.WriteHeader([]byte("Header"))
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
_, _ = writer.Write([]byte(", World"))
|
||||
t.Log(storage.valuesMap)
|
||||
|
||||
{
|
||||
err = storage.Read("abc", make([]byte, 8), func(data []byte, size int64, expiredAt int64, isEOF bool) {
|
||||
t.Log("read:", string(data))
|
||||
})
|
||||
reader, err := storage.OpenReader("abc")
|
||||
if err != nil {
|
||||
if err == ErrNotFound {
|
||||
t.Log("not found: abc")
|
||||
@@ -31,12 +30,26 @@ func TestMemoryStorage_Open(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
buf := make([]byte, 1024)
|
||||
t.Log("status:", reader.Status())
|
||||
err = reader.ReadHeader(buf, func(n int) (goNext bool, err error) {
|
||||
t.Log("header:", string(buf[:n]))
|
||||
return true, nil
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = reader.ReadBody(buf, func(n int) (goNext bool, err error) {
|
||||
t.Log("body:", string(buf[:n]))
|
||||
return true, nil
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
err = storage.Read("abc 2", make([]byte, 8), func(data []byte, size int64, expiredAt int64, isEOF bool) {
|
||||
t.Log("read:", string(data))
|
||||
})
|
||||
_, err := storage.OpenReader("abc 2")
|
||||
if err != nil {
|
||||
if err == ErrNotFound {
|
||||
t.Log("not found: abc2")
|
||||
@@ -46,15 +59,13 @@ func TestMemoryStorage_Open(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
writer, err = storage.Open("abc", time.Now().Unix()+60)
|
||||
writer, err = storage.OpenWriter("abc", time.Now().Unix()+60, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello123"))
|
||||
{
|
||||
err = storage.Read("abc", make([]byte, 8), func(data []byte, size int64, expiredAt int64, isEOF bool) {
|
||||
t.Log("read:", string(data))
|
||||
})
|
||||
reader, err := storage.OpenReader("abc")
|
||||
if err != nil {
|
||||
if err == ErrNotFound {
|
||||
t.Log("not found: abc")
|
||||
@@ -62,13 +73,21 @@ func TestMemoryStorage_Open(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
buf := make([]byte, 1024)
|
||||
err = reader.ReadBody(buf, func(n int) (goNext bool, err error) {
|
||||
t.Log("abc:", string(buf[:n]))
|
||||
return true, nil
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMemoryStorage_Delete(t *testing.T) {
|
||||
storage := NewMemoryStorage(&serverconfigs.HTTPCachePolicy{})
|
||||
{
|
||||
writer, err := storage.Open("abc", time.Now().Unix()+60)
|
||||
writer, err := storage.OpenWriter("abc", time.Now().Unix()+60, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -76,7 +95,7 @@ func TestMemoryStorage_Delete(t *testing.T) {
|
||||
t.Log(len(storage.valuesMap))
|
||||
}
|
||||
{
|
||||
writer, err := storage.Open("abc1", time.Now().Unix()+60)
|
||||
writer, err := storage.OpenWriter("abc1", time.Now().Unix()+60, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -91,7 +110,7 @@ func TestMemoryStorage_Stat(t *testing.T) {
|
||||
storage := NewMemoryStorage(&serverconfigs.HTTPCachePolicy{})
|
||||
expiredAt := time.Now().Unix() + 60
|
||||
{
|
||||
writer, err := storage.Open("abc", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -99,12 +118,12 @@ func TestMemoryStorage_Stat(t *testing.T) {
|
||||
t.Log(len(storage.valuesMap))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
{
|
||||
writer, err := storage.Open("abc1", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc1", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -112,7 +131,7 @@ func TestMemoryStorage_Stat(t *testing.T) {
|
||||
t.Log(len(storage.valuesMap))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc1",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
@@ -128,26 +147,26 @@ func TestMemoryStorage_CleanAll(t *testing.T) {
|
||||
storage := NewMemoryStorage(&serverconfigs.HTTPCachePolicy{})
|
||||
expiredAt := time.Now().Unix() + 60
|
||||
{
|
||||
writer, err := storage.Open("abc", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
{
|
||||
writer, err := storage.Open("abc1", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc1", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc1",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
@@ -162,26 +181,26 @@ func TestMemoryStorage_Purge(t *testing.T) {
|
||||
storage := NewMemoryStorage(&serverconfigs.HTTPCachePolicy{})
|
||||
expiredAt := time.Now().Unix() + 60
|
||||
{
|
||||
writer, err := storage.Open("abc", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
{
|
||||
writer, err := storage.Open("abc1", expiredAt)
|
||||
writer, err := storage.OpenWriter("abc1", expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
storage.AddToList(&Item{
|
||||
Key: "abc1",
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
@@ -203,14 +222,14 @@ func TestMemoryStorage_Expire(t *testing.T) {
|
||||
for i := 0; i < 1000; i++ {
|
||||
expiredAt := time.Now().Unix() + int64(rands.Int(0, 60))
|
||||
key := "abc" + strconv.Itoa(i)
|
||||
writer, err := storage.Open(key, expiredAt)
|
||||
writer, err := storage.OpenWriter(key, expiredAt, 200)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
_, _ = writer.Write([]byte("Hello"))
|
||||
storage.AddToList(&Item{
|
||||
Key: key,
|
||||
Size: 5,
|
||||
BodySize: 5,
|
||||
ExpiredAt: expiredAt,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user