ConnectionMultiplexer 的 dispose() 方法不会刷新所有键和它连接到的 redis 数据库吗?
Doesn't dispose() method of ConnectionMultiplexer flushes all keys and the redis database it is connected to?
我已经使用 Redis 缓存了我的数据库。当我 运行 在 redis 的 connectionmultiplexer class 实例上使用 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 数据库吗?
为什么客户端应该自动刷新 Redis??
实际上将它用作分布式缓存的任何人都无法使用它(许多连接的客户端使用共享缓存...)。
Redis 有一个 FLUSH
和 FLUSHALL
命令,它们在每个服务器上工作,您可以显式调用它们。
见
https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md
ConnectionMultiplexer 上的 Dispose(...) 操作关闭连接并释放其他资源,例如与 ConnectionMultiplexer 对象关联的 ServerEndpoint 对象。它不会向 Redis 发出任何命令。
我已经使用 Redis 缓存了我的数据库。当我 运行 在 redis 的 connectionmultiplexer class 实例上使用 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 数据库吗?
为什么客户端应该自动刷新 Redis??
实际上将它用作分布式缓存的任何人都无法使用它(许多连接的客户端使用共享缓存...)。
Redis 有一个 FLUSH
和 FLUSHALL
命令,它们在每个服务器上工作,您可以显式调用它们。
见 https://github.com/StackExchange/StackExchange.Redis/blob/master/Docs/KeysScan.md
ConnectionMultiplexer 上的 Dispose(...) 操作关闭连接并释放其他资源,例如与 ConnectionMultiplexer 对象关联的 ServerEndpoint 对象。它不会向 Redis 发出任何命令。