소스 검색

Session统计

懒得勤快 7 년 전
부모
커밋
89352323f3
3개의 변경된 파일56개의 추가작업 그리고 10개의 파일을 삭제
  1. 46 2
      Masuit.Tools/Net/WebExtension.cs
  2. 1 1
      Masuit.Tools/NoSQL/RedisHelper.cs
  3. 9 7
      Test/Program.cs

+ 46 - 2
Masuit.Tools/Net/WebExtension.cs

@@ -94,7 +94,7 @@ namespace Masuit.Tools.Net
             {
                 using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                 {
-                    redisHelper.SetHash(sessionKey, key, obj, TimeSpan.FromMinutes(expire)); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
+                    redisHelper.SetHash("Session:" + sessionKey, key, obj, TimeSpan.FromMinutes(expire)); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
                 }
             }
             catch
@@ -137,7 +137,7 @@ namespace Masuit.Tools.Net
             {
                 using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                 {
-                    redisHelper.SetHash(sessionKey, key, obj, TimeSpan.FromMinutes(expire)); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
+                    redisHelper.SetHash("Session:" + sessionKey, key, obj, TimeSpan.FromMinutes(expire)); //存储数据到缓存服务器,这里将字符串"my value"缓存,key 是"test"
                 }
             }
             catch
@@ -196,6 +196,7 @@ namespace Masuit.Tools.Net
                 {
                     try
                     {
+                        sessionKey = "Session:" + sessionKey;
                         using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                         {
                             if (redisHelper.KeyExists(sessionKey) && redisHelper.HashExists(sessionKey, key))
@@ -244,6 +245,7 @@ namespace Masuit.Tools.Net
                 {
                     try
                     {
+                        sessionKey = "Session:" + sessionKey;
                         using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                         {
                             if (redisHelper.KeyExists(sessionKey) && redisHelper.HashExists(sessionKey, key))
@@ -286,6 +288,7 @@ namespace Masuit.Tools.Net
 
                 try
                 {
+                    sessionKey = "Session:" + sessionKey;
                     using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                     {
                         if (redisHelper.KeyExists(sessionKey) && redisHelper.HashExists(sessionKey, key))
@@ -323,6 +326,7 @@ namespace Masuit.Tools.Net
 
                 try
                 {
+                    sessionKey = "Session:" + sessionKey;
                     using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
                     {
                         if (redisHelper.KeyExists(sessionKey) && redisHelper.HashExists(sessionKey, key))
@@ -338,6 +342,46 @@ namespace Masuit.Tools.Net
             }
         }
 
+        /// <summary>
+        /// Session个数
+        /// </summary>
+        /// <param name="session"></param>
+        /// <returns></returns>
+        public static int SessionCount(this HttpSessionState session)
+        {
+            try
+            {
+                using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
+                {
+                    return redisHelper.GetServer().Keys(1, "Session:*").Count();
+                }
+            }
+            catch (Exception e)
+            {
+                LogManager.Error(e);
+                return 0;
+            }
+        }
+        /// <summary>
+        /// Session个数
+        /// </summary>
+        /// <param name="session"></param>
+        /// <returns></returns>
+        public static int SessionCount(this HttpSessionStateBase session)
+        {
+            try
+            {
+                using (RedisHelper redisHelper = RedisHelper.GetInstance(1))
+                {
+                    return redisHelper.GetServer().Keys(1, "Session:*").Count();
+                }
+            }
+            catch (Exception e)
+            {
+                LogManager.Error(e);
+                return 0;
+            }
+        }
         #endregion
 
         #region 获取客户端IP地址信息

+ 1 - 1
Masuit.Tools/NoSQL/RedisHelper.cs

@@ -1161,7 +1161,7 @@ namespace Masuit.Tools.NoSQL
         /// <returns>服务器实例</returns>
         public IServer GetServer(string hostAndPort = null)
         {
-            return _conn.GetServer(string.IsNullOrEmpty(hostAndPort) ? ConfigurationManager.ConnectionStrings["RedisHosts"]?.ConnectionString ?? "127.0.0.1:6379" : hostAndPort);
+            return _conn.GetServer(string.IsNullOrEmpty(hostAndPort) ? _conn.Configuration : hostAndPort);
         }
 
         /// <summary>

+ 9 - 7
Test/Program.cs

@@ -1,8 +1,9 @@
 using System;
 using System.Collections.Concurrent;
-using System.Net.Http;
-using System.Net.Http.Headers;
+using System.Linq;
 using System.Threading.Tasks;
+using Masuit.Tools.NoSQL;
+using StackExchange.Redis;
 
 namespace Test
 {
@@ -10,11 +11,12 @@ namespace Test
     {
         static void Main(string[] args)
         {
-            var httpClient = new HttpClient() { BaseAddress = new Uri("http://www.hbtswl.com") };
-            httpClient.DefaultRequestHeaders.UserAgent.Add(ProductInfoHeaderValue.Parse("Mozilla/5.0"));
-            var res = httpClient.GetAsync("/").Result;
-            var statusCode = res.StatusCode;
-            Console.WriteLine(statusCode);
+            using (RedisHelper redisHelper = RedisHelper.GetInstance("192.168.3.148:6379", 2))
+            {
+                var count = redisHelper.GetServer().Keys(0,"o*").Count();
+                Console.WriteLine(count);
+            }
+            Console.WriteLine("ok");
         }
 
         public static ConcurrentDictionary<string, object> LockDic { get; set; } = new ConcurrentDictionary<string, object>();