ServiceStack缓存/会话锁定

时间:2013-03-25 09:34:44

标签: c# session servicestack

我正在使用ServiceStack的会话功能(使用内存缓存),我尝试访问会话对象中的密钥,修改它然后保存会话:

var filesList = Session.Get<List<string>>("NewRequestUploadedFiles");
filesList.Add(fileName);
Session["NewRequestUploadedFiles"] = filesList;

此代码可以通过客户端的多个并发请求并行调用,因此需要锁定此密钥。 有没有内置的方法来实现对ISession的锁定?

现在我使用内存缓存,但是将来我想将缓存提供程序更改为Redis,所以如果有任何通用方法,则首选。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您应该考虑使用ServiceStack's typed sessions,因为写入是原子的。

否则,如果您愿意,可以保留distributed locks with Redis。如果它只是内存中的单个主机,则可以使用C#标准锁定语义。