go-cache
go-cache copied to clipboard
Feature request: Renaming
There is no way to just change the key for an item. If I wanted to do this manually, I would have to use Delete
and then Add
, but upon deletion the OnEvicted
function would be called, which I don't want.
My use case is a webservice, where the user can create some data entry using an assistant, which consists of multiple web pages. I use go-cache
to store the already entered data from past pages until the assistant is finished. I use an XSRF-token (generated with golang.org/x/net/xsrftoken
) as the key for the cache item. My issue with this is, that I cannot extend the validity of the token after one step of the assistant has been completed, so I would have to generate a new one, but copying the cache item, so that it can be found with the new token would be expensive (contains large files, which are deleted through OnEvicted
).
Ideally I could also set a new duration upon renaming, but maybe this would be better as a separate feature.
I implemented this as Rename()
in https://github.com/arp242/zcache; it doesn't update the expiry, so you'll have to do a second Touch()
call to update that if you want it.
Since this hasn't been maintained for a few years, I've been maintaining a fork over there.
Oh, also your PR #153 from last month is implemented as DeleteAll()
in zcache. I did that last year already (I made a new function because both calling and not calling onEvicted have valid use cases).
Thanks for the info and thanks for implementing Rename()
so quickly. I'll check out your fork.