1
0
Commit Graph

116 Commits

Author SHA1 Message Date
Matt Keller
b60c6ee2c8 Consistency. 2015-03-08 09:23:24 -04:00
Matt Keller
f66ee0bbc6 Injected LRU capabilities that simply:
* ensures that when an item is added, if the number of unexpired items
>= maximum number of items specified, the oldest (based on ACCESS) is
expired
* when an item is "gotten", or "set", the access time is updated

The existing janitor system is unchanged, and used to actually delete
the items.

The only change from a consumer standpoint, is one addition parameter at
the end of a "New" call, that specifies the maximum number of items to
allow, or 0, if you want to disable the LRU at all.
2015-02-27 15:57:16 -05:00
Patrick Mylund Nielsen
03284ca422 Replace sharded hash function/misc mods 2014-12-22 10:37:59 -05:00
Patrick Mylund Nielsen
8a2f4f19ef go fmt 2014-12-22 02:48:52 -05:00
Patrick Mylund Nielsen
e3a846e1f9 Clarify what NoExpiration and DefaultExpiration are 2014-12-22 02:47:08 -05:00
Patrick Mylund Nielsen
a1dd6b7fff s/NewFrom/NewFrom()/ in NewFrom doc 2014-12-22 02:39:59 -05:00
Patrick Mylund Nielsen
9ea75a8586 s/NewFrom/NewFrom()/ in Load/LoadFile/Save/SaveFile docs 2014-12-22 02:37:46 -05:00
Patrick Mylund Nielsen
873e78f0db s/gob.Register/gob.Register()/ in NewFrom doc 2014-12-22 02:30:02 -05:00
Patrick Mylund Nielsen
bc36de7dec Clarify NewFrom documentation on use cases 2014-12-22 02:15:12 -05:00
Patrick Mylund Nielsen
d68800e607 s/with the same caveats/subject to the same caveat/ in NewFrom doc 2014-12-22 02:09:42 -05:00
Patrick Mylund Nielsen
887753fa90 Refer to DeleteExpired as c.DeleteExpired() 2014-12-22 02:06:10 -05:00
Patrick Mylund Nielsen
888f396121 Update NewFrom doc to be consistent with New 2014-12-22 02:04:11 -05:00
Patrick Mylund Nielsen
32dd451b6d README.md: Be consistent with NewFrom() 2014-12-22 01:59:29 -05:00
Patrick Mylund Nielsen
238c0209c0 New markdown README (thanks Jason Mooberry) 2014-12-22 01:55:57 -05:00
Patrick Mylund Nielsen
46827c6a61 Add NoExpiration and DefaultExpiration constants and use them (thanks to Jason Mooberry) 2014-12-22 01:46:22 -05:00
Patrick Mylund Nielsen
73a30b2033 Add NewFrom, and deprecate Save, SaveFile, Load, and LoadFile 2014-12-22 01:12:10 -05:00
Patrick Mylund Nielsen
ffd0b9e3ec Move the unexportedShardedCache to sharded.go 2014-12-22 00:24:49 -05:00
Patrick Mylund Nielsen
6ea7e6fb42 Remove the pointless unexportedInterface 2014-12-22 00:12:48 -05:00
Patrick Mylund Nielsen
23b49bf74d LICENSE: Remove sneaky space character 2014-12-22 00:01:09 -05:00
Patrick Mylund Nielsen
61ce35d44e LICENSE: Update copyright to 2012-2014 2014-12-21 23:56:20 -05:00
Patrick Mylund Nielsen
8c0eccfc44 CONTRIBUTORS: Add Jason Mooberry 2014-12-21 23:51:48 -05:00
Patrick Mylund Nielsen
7d1d6d6ae9 Note about needing explicit synchronization if you want to use the returned items map and its cache at the same time 2013-08-08 15:10:54 -04:00
Patrick Mylund Nielsen
3ff6a5407e Reference 'go doc' in the README 2013-08-08 15:02:23 -04:00
Patrick Mylund Nielsen
c383ebd2ba Remove go doc-style reference from README since go doc now shows public methods from (private) embedded structs 2013-08-08 15:01:48 -04:00
Patrick Mylund Nielsen
e91e36d111 ItemCount() is equivalent to len(c.Items()), not len(c.Items) 2013-08-08 14:54:03 -04:00
Patrick Mylund Nielsen
fd89281dfd s/field/fields/ 2013-08-08 14:53:24 -04:00
Patrick Mylund Nielsen
f8cc27acbc Export Item wrapping type, and add an Items() method to cache 2013-08-08 14:53:02 -04:00
Patrick Mylund Nielsen
baa5a64da4 Revert 3986bff for now 2013-06-30 22:05:40 -04:00
Patrick Mylund Nielsen
2fb27e8369 Change the names of the MutexMap benchmarks to RWMutex to clarify the changes to the map benchmarks and the cache itself 2013-06-30 20:40:26 -04:00
Patrick Mylund Nielsen
155ab21e5d Use an RWMutex in the cache-equivalent map tests now that the cache uses one 2013-06-30 20:31:46 -04:00
Patrick Mylund Nielsen
3986bff69b Don't keep the read lock after traversing the items map (before saving to the io.Writer) in Save 2013-06-30 20:20:38 -04:00
Patrick Mylund Nielsen
5388b25b3b Use an RWMutex instead of a Mutex, making Get a read operation only (this slightly changes the eviction behavior: lookup doesn't completely expunge an expired item, but the janitor still will at the next cleanup.) Also, use the same RWMutex in Load and Save (thanks, Alan Shreve) 2013-06-30 20:11:57 -04:00
Patrick Mylund Nielsen
1fc39f1402 Add ItemCount method description to README reference 2013-04-18 15:26:16 -04:00
Patrick Mylund Nielsen
1140511315 Condense the reference in the README by removing the duplicate descriptions and providing one general one for all of them 2013-04-18 15:24:40 -04:00
Patrick Mylund Nielsen
739fb494dc Update LICENSE file to 2012-2013 2013-04-18 14:35:10 -04:00
Patrick Mylund Nielsen
c9f5754801 Add O(1) ItemCount method to retrieve items currently in the cache map (whether expired and not cleaned up or not) 2013-04-18 14:32:01 -04:00
Patrick Mylund Nielsen
d5d03c28d4 Add specialized increment and decrement methods 2013-04-18 14:24:30 -04:00
Patrick Mylund Nielsen
b5601e904d Clarify licensing on contributed code 2012-10-08 12:34:42 +02:00
Patrick Mylund Nielsen
525c0ccc26 Add CONTRIBUTORS file and 'and the go-cache contributors' bit to the copyright line in LICENSE 2012-10-08 12:31:23 +02:00
Patrick Mylund Nielsen
e30c8eff7a Merge pull request #4 from temoto/patch-1
Attempt to close the file in SaveFile/LoadFile, and return either the serialization error, or the Close() error.
2012-10-08 03:27:04 -07:00
Sergey Shepelev
a768a84319 Save/LoadFile must close file 2012-09-19 03:25:42 +04:00
Patrick Mylund Nielsen
72916cf4df Update README to reflect API change: IncrementFloat now only works on float32 and float64, and the use of Decrement should be encouraged over Increment (with a negative number) since Increment converting a negative signed integer to an unsigned integer probably isn't the intended behavior 2012-08-17 13:48:55 +02:00
Patrick Mylund Nielsen
b3a957a46c Handle float64 and int64 Increment/Decrement separately, and don't use Increment(-n) in Decrement to support uints 2012-08-17 13:39:02 +02:00
Patrick Mylund Nielsen
9cc10f6f2f Use a type switch instead, and Use unexported NewSharded in test 2012-08-17 11:35:20 +02:00
Patrick Mylund Nielsen
13225a8ae4 Unexport the shardedcache interface and implementation until both the API and implementation are solid 2012-08-17 11:32:24 +02:00
Patrick Mylund Nielsen
15cda21ff4 Add an interface, embed the mutex, and unexport some unnecessarily exported fields 2012-07-04 19:34:37 +01:00
Patrick Mylund Nielsen
bf97a87cc7 Cleaner bucket selection 2012-06-22 09:33:27 +01:00
Patrick Mylund Nielsen
52c269d8ae Testing a sharded cache. Could be useful for massively parallel applications 2012-06-22 09:24:09 +01:00
Patrick Mylund Nielsen
0f0584a805 Fix BenchmarkCacheSetDeleteSingleLock 'cheating' by unintentionally only locking once in the whole benchmark, rather than once per set and delete 2012-06-22 06:52:32 +01:00
Patrick Mylund Nielsen
0a962bf9eb Keep the same tense in docstrings, and remove a little ambiguity 2012-06-22 04:24:48 +01:00