Кеш с обновлением по времени - что используете?
От: Shmj Ниоткуда  
Дата: 08.10.21 14:34
Оценка:
В принципе не сложно написать, но хотелось бы в виде NuGet-пакета. Типа получаете из списка значение по ключу и если его нет, то получаете из базы и сохраняете в этот список. При этом на тот случай, что в базе обновят значение — нужно чтобы список удалял старые элементы из себя, т.е. раз в 10 мин. пусть удаляет.

Что заюзать?
Отредактировано 08.10.2021 14:34 Shmj . Предыдущая версия .
Re: Кеш с обновлением по времени - что используете?
От: microuser  
Дата: 08.10.21 15:12
Оценка: 18 (4) +1
Здравствуйте, Shmj, Вы писали:

S>В принципе не сложно написать, но хотелось бы в виде NuGet-пакета. Типа получаете из списка значение по ключу и если его нет, то получаете из базы и сохраняете в этот список. При этом на тот случай, что в базе обновят значение — нужно чтобы список удалял старые элементы из себя, т.е. раз в 10 мин. пусть удаляет.


S>Что заюзать?

А чем стандартный MemoryCache не устраивает?
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.caching.memorycache?view=dotnet-plat-ext-5.0
Re[2]: Кеш с обновлением по времени - что используете?
От: Shmj Ниоткуда  
Дата: 08.10.21 21:11
Оценка:
Здравствуйте, microuser, Вы писали:

M>А чем стандартный MemoryCache не устраивает?


Как то пропустил этот класс, хотя его добавили в .Net 4 аж — все время юзал свой велосипед.
Re: Кеш с обновлением по времени - что используете?
От: Xander Zerge Россия www.zerge.com
Дата: 09.10.21 14:26
Оценка:
Здравствуйте, Shmj, Вы писали:

S>В принципе не сложно написать, но хотелось бы в виде NuGet-пакета. Типа получаете из списка значение по ключу и если его нет, то получаете из базы и сохраняете в этот список. При этом на тот случай, что в базе обновят значение — нужно чтобы список удалял старые элементы из себя, т.е. раз в 10 мин. пусть удаляет.


Мне обычно хватает три словаря и иногда таймер (если нагрузка на память существенна).

Словари:
1. ключ-объект
2. ключ-время
3. время-ключ

Время удаления — уникальное, уникальность достигается добавлением тиков в случае коллизии.
По таймеру просто периодически сносятся старые.
Серёжа Новиков,
программист
Re: Кеш с обновлением по времени - что используете?
От: Степанов Андрей  
Дата: 09.10.21 16:18
Оценка:
Здравствуйте, Shmj, Вы писали:

S>В принципе не сложно написать, но хотелось бы в виде NuGet-пакета. Типа получаете из списка значение по ключу и если его нет, то получаете из базы и сохраняете в этот список. При этом на тот случай, что в базе обновят значение — нужно чтобы список удалял старые элементы из себя, т.е. раз в 10 мин. пусть удаляет.


S>Что заюзать?


Всегда хватало стандартного MemoryCache. Если хочется чего-то вне процесса, можно Redis взять. Если надо синхронизировать с БД автоматически, то тут сильно от БД зависит. Вроде в MS SQL Server можно было кэш привязывать к БД, но реально таким не пользовался.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.