這是我所能做的。我創建了自己的會話對象集合並獲取了所有的鍵(我將它放在DB 1中),然後循環遍歷所有鍵並獲取TTL。
using StackExchange.Redis;
using StackExchange.Redis.Extensions.Newtonsoft;
using StackExchange.Redis.Extensions.Core;
using System.Linq;
private static Lazy<ConnectionMultiplexer> conn = new Lazy<ConnectionMultiplexer>(
() => ConnectionMultiplexer.Connect(ConfigurationManager.AppSettings["RedisServerMaster"]
+ "," + ConfigurationManager.AppSettings["RedisServerSlave"]
+ "," + ConfigurationManager.AppSettings["RedisOptions"])
public class SessionObjects
{
public string SessionId { get; set; }
public TimeSpan? TTL { get; set; }
}
List<SessionObjects> lso = new List<SessionObjects>();
var serializer = new NewtonsoftSerializer();
StackExchangeRedisCacheClient cacheClient;
cacheClient = new StackExchangeRedisCacheClient(rConn, serializer, 1);
IEnumerable<string> keys = cacheClient.SearchKeys("*");
var db = rConn.GetDatabase(1);
foreach (var s in keys)
{
SessionObjects so = new SessionObjects();
so.SessionId = s;
so.TTL = db.KeyTimeToLive(s);
lso.Add(so);
}
意志讓所有的鑰匙就足夠了?我的意思是使用它可能不會給你的客戶的具體數量。(一個客戶端可以存儲許多鍵值對) – Aravind
我是這麼認爲的,但如果你可以訪問鍵,你也可以得到我猜的值。它有更多的與會議狀態提供商已經與鎖等打開連接,我想重複使用,以執行我的查詢 – Rogier
它是一個關鍵的價值商店。我不確定是否會有可以鎖定的種類的實時連接。如果客戶端擁有連接到Redis緩存的憑據,他們可以隨時使用它。 – Aravind