我的应用程序 (NopCommerce) 在每次页面请求时使用缓存服务 50-150 次。当我使用 Redis 实现该服务时,它会减慢页面加载速度。
我打算将结果缓存在内存中并与 Redis 同步。是否有任何 nuget 包或这样的项目?
最佳答案
您能否举例说明您是如何为缓存目的查询 redis 的?
Redis 本质上并不慢,如果某些东西看起来很慢,那么你需要看看你是如何运行你的事务的,所以我会说确保你正在使用 MULTI
而不是执行 50-150 个单一的 redis 事务 - 您可以将它们全部移动到一个 MULTI
事务请求中。还要检查您使用的 redis 客户端是否支持 pipelining
.
您会在应用内存中运行自己的本地缓存时遇到问题,例如:
- 多个应用实例都有不同的缓存。
- 很多缓存未命中,其中一个应用服务器缓存了某些内容而另一个应用服务器没有缓存,因为缓存仅针对每个实例进行了本地化。
- 有效地使缓存过期而不会给您的应用带来太多开销。
仅举几例。
参见 http://skipperkongen.dk/2013/08/27/how-many-requests-per-second-can-i-get-out-of-redis/对于 redis 基准测试,它确实并不慢,另请参阅有关流水线的部分。
关于.net - 如何同步 Redis 与本地内存缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695892/