我使用Redis缓存了我的数据库。当我在redis的connectionmultiplexer类的实例上运行dispose()方法时,它不会刷新键和数据库。
---
private static ConnectionMultiplexer _conn;
private static ConnectionMultiplexer Connection
{
get
{
lock (Lock)
{
//Close & Dispose Old connection
if (_connection != null)
{
_conn.Close(false);
_conn.Dispose();
_conn = null;
}
---
---
return _conn;
}
}
}
问题:这个dispose()方法到底是做什么的?它不应该刷新并清除所有连接到_conn
的redis数据库吗?
答案 0 :(得分:1)
为什么客户端应该自动刷新Redis?
实际上将它用作分布式缓存(许多使用共享缓存的连接客户端......),这个东西是不可用的。
Redis有一个FLUSH
和FLUSHALL
命令,每个服务器都有效,你可以明确地调用它们。
请参阅 https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md
答案 1 :(得分:1)
ConnectionMultiplexer上的Dispose(...)操作将关闭连接并释放其他资源,例如与ConnectionMultiplexer对象关联的ServerEndpoint对象。它不会向Redis发出任何命令。