婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > .net/c# memcached緩存獲取所有緩存鍵的方法步驟

.net/c# memcached緩存獲取所有緩存鍵的方法步驟

熱門標簽:巫師3為什么地圖標注的財寶沒有 十堰正規電銷機器人系統 手機地圖標注如何刪除 外呼系統代理品牌 世紀佳緣地圖標注怎么去掉 辦理400電話證件 寧波自動外呼系統代理 外呼系統費用一年 怎么給超市做地圖標注入駐店

使用組件

memcached 1.2.6

.net 類庫 memcacheddotnet_clientlib-1.1.5

1.增加memcacheddotnet_clientlib-1.1.5代碼

下載好組件后,用vs打開.net類庫memcacheddotnet_clientlib-1.1.5,打開MemCachedClient.cs,增加如下方法:

復制代碼 代碼如下:

public Hashtable Stats(ArrayList servers, string command)
        {

            // get SockIOPool instance
            SockIOPool pool = SockIOPool.GetInstance(_poolName);

            // return false if unable to get SockIO obj
            if (pool == null)
            {
                //if(log.IsErrorEnabled)
                //{
                //    log.Error(GetLocalizedString("unable to get socket pool"));
                //}
                return null;
            }

            // get all servers and iterate over them
            if (servers == null)
                servers = pool.Servers;

            // if no servers, then return early
            if (servers == null || servers.Count = 0)
            {
                //if(log.IsErrorEnabled)
                //{
                //    log.Error(GetLocalizedString("stats no servers"));
                //}
                return null;
            }

            // array of stats Hashtables
            Hashtable statsMaps = new Hashtable();

            for (int i = 0; i servers.Count; i++)
            {

                SockIO sock = pool.GetConnection((string)servers[i]);
                if (sock == null)
                {
                    //if(log.IsErrorEnabled)
                    //{
                    //    log.Error(GetLocalizedString("unable to connect").Replace("$$Server$$", servers[i].ToString()));
                    //}
                    continue;
                }

                // build command
                if (command == null || command.Length == 0)
                {
                    command = "stats\r\n";
                }
                else
                {
                    command = command + "\r\n";
                }

                try
                {
                    sock.Write(UTF8Encoding.UTF8.GetBytes(command));
                    sock.Flush();

                    // map to hold key value pairs
                    Hashtable stats = new Hashtable();

                    // loop over results
                    while (true)
                    {
                        string line = sock.ReadLine();
                        //if(log.IsDebugEnabled)
                        //{
                        //    log.Debug(GetLocalizedString("stats line").Replace("$$Line$$", line));
                        //}

                        if (line.StartsWith(STATS))
                        {
                            string[] info = line.Split(' ');
                            string key = info[1];
                            string val = info[2];

                            //if(log.IsDebugEnabled)
                            //{
                            //    log.Debug(GetLocalizedString("stats success").Replace("$$Key$$", key).Replace("$$Value$$", val));
                            //}

                            stats[key] = val;

                        }
                        else if (line.StartsWith("ITEM"))
                        {

                            string[] info = line.Split('[');
                            string key = info[0].Split(' ')[1];
                            string val = "[" + info[1];

                            stats[key] = val;
                        }
                        else if (END == line)
                        {
                            // finish when we get end from server
                            //if(log.IsDebugEnabled)
                            //{
                            //    log.Debug(GetLocalizedString("stats finished"));
                            //}
                            break;
                        }

                        statsMaps[servers[i]] = stats;
                    }
                }
                catch//(IOException e)
                {
                    //if(log.IsErrorEnabled)
                    //{
                    //    log.Error(GetLocalizedString("stats IOException"), e);
                    //}

                    try
                    {
                        sock.TrueClose();
                    }
                    catch//(IOException)
                    {
                        //if(log.IsErrorEnabled)
                        //{
                        //    log.Error(GetLocalizedString("failed to close some socket").Replace("$$Socket$$", sock.ToString()));
                        //}
                    }

                    sock = null;
                }

                if (sock != null)
                    sock.Close();
            }

            return statsMaps;
        }

2 文章中有GetStats方法,將它修改如下:

復制代碼 代碼如下:

/// summary>
        /// 獲取服務器端緩存的數據信息
        /// /summary>
        /// param name="serverArrayList">要訪問的服務列表/param>
        /// param name="statsCommand">此參數的功能暫時無效/param>
        /// param name="param">此參數的功能暫時無效/param>
        /// returns>返回信息/returns>
        public static IListstring> GetStats(IListstring> serverArrayList, MemcachedStats statsCommand, string param)
        {
            IListstring> statsArray = new Liststring>();
            if (param == null)
                param = "";
            else
            {
                param = param.Trim().ToLower();
            }

            string commandstr = "stats";
            //轉換stats命令參數
            switch (statsCommand)
            {
                case MemcachedStats.Reset: { commandstr = "stats reset"; break; }
                case MemcachedStats.Malloc: { commandstr = "stats malloc"; break; }
                case MemcachedStats.Maps: { commandstr = "stats maps"; break; }
                case MemcachedStats.Sizes: { commandstr = "stats sizes"; break; }
                case MemcachedStats.Slabs: { commandstr = "stats slabs"; break; }
                case MemcachedStats.Items: { commandstr = "stats items"; break; }//此處原先是返回stats
                case MemcachedStats.CachedDump:
                    {
                        string[] statsparams = param.Split(' ');
                        if (statsparams.Length == 2)
                            if (param.IsIntArr(' '))// Utils.IsNumericArray(statsparams)
                                commandstr = "stats cachedump  " + param;

                        break;
                    }
                case MemcachedStats.Detail:
                    {
                        if (string.Equals(param, "on") || string.Equals(param, "off") || string.Equals(param, "dump"))
                            commandstr = "stats detail " + param.Trim();

                        break;
                    }
                default: { commandstr = "stats"; break; }
            }

            ArrayList arr = new ArrayList(serverArrayList.ToArray());

            Hashtable stats = MemcachedManager.CacheClient.Stats(arr, commandstr);

            foreach (string key in stats.Keys)
            {
                statsArray.Add("server:__:" + key);//此處也改了
                Hashtable values = (Hashtable)stats[key];
                foreach (string key2 in values.Keys)
                {
                    statsArray.Add(key2 + ":" + values[key2]);
                }
            }
            return statsArray;
        }

3.最后增加如下方法

復制代碼 代碼如下:

/// summary>
       /// 獲取所有緩存鍵
       /// /summary>
       /// returns>/returns>
       public static IListstring> GetAllKeys()
       {
           IListint> idList = new Listint>();
           IListstring> list = MemcachedManager.GetStats(MemcachedManager.ServerList, MemcachedStats.Items, null);
           foreach (var item in list)
           {
               string[] tmpArr = item.Split(':');
               if (tmpArr.Length > 1)
               {
                   int itemID = 0;
                   if (tmpArr[1] == "__") continue;

                   int.TryParse(tmpArr[1], out itemID);
                   if (itemID = 0) continue;

                   bool find = false;
                   foreach (int item1 in idList)
                   {
                       if (item1 == itemID)
                       {
                           find = true;
                           break;
                       }
                   }

                   if (!find)
                   {
                       idList.Add(itemID);
                   }
               }
           }

           IListstring> keys = new Liststring>();
           foreach (int item in idList)
           {
               IListstring> cachearr = MemcachedManager.GetStats(MemcachedManager.ServerList, MemcachedStats.CachedDump, item + " 0");
               foreach (string itemCache in cachearr)
               {
                   string[] tmpArr = itemCache.Split(':');
                   if (tmpArr.Length > 1)
                   {
                       if (tmpArr[1] == "__")
                       {
                           continue;
                       }

                       keys.Add(tmpArr[0]);
                   }
               }
           }

           return keys;
       }

調用方法

復制代碼 代碼如下:

IListstring> list = MemcachedManager.GetAllKeys();
            foreach (var item in list)
            {
                Response.Write(item + "br />");
            }

您可能感興趣的文章:
  • C# memcache 使用介紹
  • C# Memcached緩存用法實例詳解
  • C#緩存之SqlCacheDependency用法實例總結
  • C# memcached緩存使用實例代碼
  • asp.net(C#)遍歷memcached緩存對象
  • c# 如何用lock解決緩存擊穿
  • C#利用緩存分塊讀寫大文件
  • C#中緩存的基本使用方法
  • C#清除WebBrowser中Cookie緩存的方法
  • C# Cache緩存讀取的設置方法

標簽:通遼 嘉興 天門 平涼 景德鎮 牡丹江 泰州 山西

巨人網絡通訊聲明:本文標題《.net/c# memcached緩存獲取所有緩存鍵的方法步驟》,本文關鍵詞  .net,memcached,緩存,獲取,所有,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.net/c# memcached緩存獲取所有緩存鍵的方法步驟》相關的同類信息!
  • 本頁收集關于.net/c# memcached緩存獲取所有緩存鍵的方法步驟的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人污视频在线观看| 2021久久国产精品不只是精品| 精品粉嫩超白一线天av| 色婷婷综合久久久| 舔着乳尖日韩一区| 在线观看区一区二| 国产成人综合自拍| 亚洲福利电影网| 中文字幕在线播放不卡一区| 欧美日韩高清不卡| 成人天堂资源www在线| 久久av资源站| 一区二区三区免费网站| 激情六月婷婷综合| 亚洲一区在线观看视频| 久久久夜色精品亚洲| 日韩欧美电影在线| 欧美日韩一区 二区 三区 久久精品 | **网站欧美大片在线观看| 成人小视频在线| 成人av在线影院| 日本亚洲天堂网| 麻豆精品久久精品色综合| 亚洲一区二区三区爽爽爽爽爽| 亚洲国产视频网站| 亚洲h动漫在线| 亚洲黄一区二区三区| 亚洲一级电影视频| 亚洲在线视频一区| 中文字幕在线不卡国产视频| 久久久噜噜噜久久中文字幕色伊伊| 欧美日本一区二区在线观看| 成人精品免费网站| 欧美日韩中文字幕一区二区| 91色在线porny| 视频一区二区欧美| 日本一区中文字幕| 午夜久久电影网| 日韩不卡一二三区| 日韩和欧美一区二区三区| 亚洲午夜电影在线| 香蕉加勒比综合久久| 一区二区三区四区蜜桃 | 国产乱码精品一区二区三区忘忧草| 亚洲国产综合人成综合网站| 日本在线不卡视频一二三区| 五月综合激情婷婷六月色窝| 亚洲宅男天堂在线观看无病毒| 久久精品国产999大香线蕉| 蜜桃传媒麻豆第一区在线观看| 成人免费看视频| 成人免费看视频| 91麻豆国产自产在线观看| 日韩欧美一区二区在线视频| 日韩一本二本av| 亚洲老司机在线| 婷婷中文字幕综合| 天堂久久久久va久久久久| 国产白丝网站精品污在线入口| 日韩精品福利网| 日韩精品1区2区3区| 久久99国产乱子伦精品免费| 国产精品一区二区不卡| 日本一不卡视频| 94-欧美-setu| 国产亚洲成av人在线观看导航 | 99久久精品国产精品久久| 国产日韩欧美精品一区| 日本一区二区免费在线观看视频| 国产无遮挡一区二区三区毛片日本| 亚洲一区二区三区视频在线 | 97久久久精品综合88久久| 日韩一区二区在线看片| 久久亚区不卡日本| 亚洲图片你懂的| 国产91精品久久久久久久网曝门| 99re66热这里只有精品3直播| av中文一区二区三区| 欧美精选午夜久久久乱码6080| 91精品国产91综合久久蜜臀| 亚洲国产精品一区二区尤物区| 日韩和的一区二区| 国v精品久久久网| www国产亚洲精品久久麻豆| 亚洲女子a中天字幕| 成人性生交大片免费看中文网站| 欧美最新大片在线看| 久久美女艺术照精彩视频福利播放| 日韩高清一级片| 91麻豆产精品久久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 自拍偷自拍亚洲精品播放| 五月激情综合婷婷| 成人aa视频在线观看| 国产日韩欧美综合一区| 天天亚洲美女在线视频| 欧美浪妇xxxx高跟鞋交| 国产欧美精品一区二区色综合朱莉| 亚洲黄色尤物视频| 欧美中文字幕亚洲一区二区va在线 | 丝袜国产日韩另类美女| 精品在线播放午夜| 欧美日韩精品欧美日韩精品| 中文av一区二区| 久久国产剧场电影| 欧美日韩aaa| 久久er99精品| 91精品国产综合久久国产大片 | 欧美日韩中文字幕一区| 首页综合国产亚洲丝袜| 99这里只有精品| 91精品国产综合久久久蜜臀图片| 美腿丝袜在线亚洲一区| 欧美日韩一区国产| 麻豆91在线看| 日韩一区二区三区四区五区六区 | 欧美巨大另类极品videosbest | 蜜乳av一区二区| 欧美日韩国产首页| 久久精品99久久久| 在线播放国产精品二区一二区四区| 日韩国产在线观看| 日韩一区二区在线观看| 另类综合日韩欧美亚洲| 中文字幕免费观看一区| 国产精品香蕉一区二区三区| 中文字幕制服丝袜一区二区三区| 成人免费毛片app| 国产精品久久久久婷婷二区次| 欧美在线免费观看亚洲| 一区二区三区在线看| 久久只精品国产| 在线精品亚洲一区二区不卡| 自拍偷自拍亚洲精品播放| 欧美一卡2卡3卡4卡| 精品亚洲国内自在自线福利| 日韩精品一区二区三区中文不卡| 成人av电影观看| 自拍偷拍欧美精品| 日韩精品一区二区三区视频 | 日韩一级完整毛片| 免费看黄色91| 亚洲综合成人网| 欧美电影在哪看比较好| 福利一区福利二区| 亚洲视频中文字幕| 91精品欧美福利在线观看| 久久久久久免费网| 成人高清视频免费观看| 免费人成精品欧美精品| 久久精品人人做| 美女一区二区视频| 一区二区三区四区在线免费观看 | 亚洲欧美日韩成人高清在线一区| 日韩欧美一区二区视频| 成人av网址在线| 丝袜美腿高跟呻吟高潮一区| 亚洲人成亚洲人成在线观看图片| 欧美午夜精品电影| 色成年激情久久综合| 久久se这里有精品| 国产精品美女久久久久久久网站| 久久青草国产手机看片福利盒子| 日本大香伊一区二区三区| 成人动漫精品一区二区| 天天av天天翘天天综合网色鬼国产| 精品处破学生在线二十三| 欧美成人欧美edvon| 99热99精品| 91亚洲精华国产精华精华液| 青娱乐精品视频在线| 中文字幕一区二区视频| 中文字幕一区二区三区不卡在线| 欧美区在线观看| 在线成人免费视频| 色综合久久88色综合天天6| 中文字幕第一区| 中文字幕中文字幕一区二区 | 精品三级在线观看| 欧美日韩精品综合在线| 成人v精品蜜桃久久一区| 粉嫩av亚洲一区二区图片| 亚洲大片免费看| 日本中文字幕不卡| 亚洲一区二区三区爽爽爽爽爽| 中日韩av电影| 亚洲综合免费观看高清完整版在线 | 精品一区免费av| 亚洲成av人片在www色猫咪| 亚洲成av人片一区二区三区| 一区二区在线看| 精品国产乱码久久久久久浪潮| 精品播放一区二区| 欧美不卡一区二区| 欧美激情综合网| 久久久精品黄色| 最新成人av在线| 亚洲综合成人网| 亚洲成av人片在线观看无码| 久久99久久99小草精品免视看|