我必须更换旧系统上的缓存。
我决定尝试使用Redis。我在Windows 2012计算机上运行了x64的Redis v3.0.504。它与Web应用程序是同一台服务器。这些是机器上运行的唯一2个应用程序。服务器有20演出的内存。
应用程序尝试一次将3900个对象写入缓存。旧缓存能够处理这个问题,但现在它失败了。
调试时,我收到错误:内存不足,无法继续执行程序。事件日志有错误:为Windows应用程序池“XXXXXXAppPool”提供服务的进程与Windows进程激活服务发生致命的通信错误。进程ID为'2824'。数据字段包含错误编号。
将3900对象写入缓存似乎不是很多,我认为不应该是一个问题。
任何人都可以猜出问题是什么以及可能的解决方案是什么?
以下是我对标准配置文件所做的更改:
################################ SNAPSHOTTING ################################
#
# Save the DB on disk:
# save ""
# save 900 1
# save 300 10
# save 60 10000
# stop-writes-on-bgsave-error yes
rdbcompression no
# rdbchecksum yes
################################### LIMITS ####################################
persistence-available [no]
#maxmemory 10240mb
maxmemory 15g
maxmemory-policy allkeys-lru
答案 0 :(得分:0)
问题实际上是Redis客户端,ServiceStack.Redis,序列化引用自己的对象。