OLD | NEW |
1 // Copyright 2015 The LUCI Authors. All rights reserved. | 1 // Copyright 2015 The LUCI Authors. All rights reserved. |
2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
4 | 4 |
5 package memcache | 5 package memcache |
6 | 6 |
7 import ( | 7 import ( |
8 "time" | 8 "time" |
9 ) | 9 ) |
10 | 10 |
11 // Statistics represents a set of statistics about the memcache cache. This | 11 // Statistics represents a set of statistics about the memcache cache. This |
12 // may include items that have expired but have not yet been removed from the | 12 // may include items that have expired but have not yet been removed from the |
13 // cache. | 13 // cache. |
14 type Statistics struct { | 14 type Statistics struct { |
15 Hits uint64 // Counter of cache hits | 15 Hits uint64 // Counter of cache hits |
16 Misses uint64 // Counter of cache misses | 16 Misses uint64 // Counter of cache misses |
17 ByteHits uint64 // Counter of bytes transferred for gets | 17 ByteHits uint64 // Counter of bytes transferred for gets |
18 | 18 |
19 Items uint64 // Items currently in the cache | 19 Items uint64 // Items currently in the cache |
20 Bytes uint64 // Size of all items currently in the cache | 20 Bytes uint64 // Size of all items currently in the cache |
21 | 21 |
22 Oldest int64 // Age of access of the oldest item, in seconds | 22 Oldest int64 // Age of access of the oldest item, in seconds |
23 } | 23 } |
24 | 24 |
25 // Item is a wrapper around *memcache.Item. Note that the Set* methods all | 25 // Item is a wrapper around *memcache.Item. Note that the Set* methods all |
26 // return the original Item (e.g. they mutate the original), due to | 26 // return the original Item (e.g. they mutate the original), due to |
27 // implementation constraints. They return the original item to allow easy | 27 // implementation constraints. They return the original item to allow easy |
28 // chaining, e.g.: | 28 // chaining, e.g.: |
29 // itm := memcache.Get(c).NewItem("foo").SetValue([]byte("stuff")) | 29 // itm := memcache.NewItem(c, "foo").SetValue([]byte("stuff")) |
30 type Item interface { | 30 type Item interface { |
31 Key() string | 31 Key() string |
32 Value() []byte | 32 Value() []byte |
33 Flags() uint32 | 33 Flags() uint32 |
34 Expiration() time.Duration | 34 Expiration() time.Duration |
35 | 35 |
36 SetKey(string) Item | 36 SetKey(string) Item |
37 SetValue([]byte) Item | 37 SetValue([]byte) Item |
38 SetFlags(uint32) Item | 38 SetFlags(uint32) Item |
39 SetExpiration(time.Duration) Item | 39 SetExpiration(time.Duration) Item |
40 | 40 |
41 // SetAll copies all the values from other, except Key, into this item | 41 // SetAll copies all the values from other, except Key, into this item |
42 // (including the hidden CasID field). If other is nil, then all non-Key | 42 // (including the hidden CasID field). If other is nil, then all non-Key |
43 // fields are reset. | 43 // fields are reset. |
44 SetAll(other Item) | 44 SetAll(other Item) |
45 } | 45 } |
OLD | NEW |