File tree Expand file tree Collapse file tree 2 files changed +45
-5
lines changed
Expand file tree Collapse file tree 2 files changed +45
-5
lines changed Original file line number Diff line number Diff line change 11package cache
22
33import (
4+ "sync"
5+
46 "github.com/golang/groupcache/lru"
57)
68
9+ type LruCache struct {
10+ * lru.Cache
11+ mutex sync.Mutex
12+ }
13+
14+ func NewLruCache (maxEntries int ) * LruCache {
15+ return & LruCache {
16+ Cache : lru .New (maxEntries ),
17+ }
18+ }
19+
20+ func (l * LruCache ) Add (key lru.Key , value interface {}) {
21+ l .mutex .Lock ()
22+ l .Cache .Add (key , value )
23+ l .mutex .Unlock ()
24+ }
25+ func (l * LruCache ) Get (key lru.Key ) (value interface {}, ok bool ) {
26+ l .mutex .Lock ()
27+ value , ok = l .Cache .Get (key )
28+ l .mutex .Unlock ()
29+ return
30+ }
31+
732// int:PrivateMessage
8- var PrivateMessageLru = lru . New (512 )
33+ var PrivateMessageLru = NewLruCache (512 )
934
1035// int:GroupMessage
11- var GroupMessageLru = lru . New (2048 )
36+ var GroupMessageLru = NewLruCache (2048 )
1237
1338// string:
14- var FriendRequestLru = lru . New (128 )
39+ var FriendRequestLru = NewLruCache (128 )
1540
1641// string:
17- var GroupRequestLru = lru . New (128 )
42+ var GroupRequestLru = NewLruCache (128 )
1843
1944// string:
20- var GroupInvitedRequestLru = lru . New (16 )
45+ var GroupInvitedRequestLru = NewLruCache (16 )
Original file line number Diff line number Diff line change 1+ package cache
2+
3+ import "testing"
4+
5+ func TestLruCache_Add (t * testing.T ) {
6+ lruCache := NewLruCache (3 )
7+ lruCache .Add (10 , 10 )
8+ v , ok := lruCache .Get (10 )
9+ t .Logf ("1: %+v %+v" , v , ok )
10+ lruCache .Add (11 , 10 )
11+ lruCache .Add (13 , 10 )
12+ lruCache .Add (14 , 10 )
13+ v , ok = lruCache .Get (10 )
14+ t .Logf ("2: %+v %+v" , v , ok )
15+ }
You can’t perform that action at this time.
0 commit comments