ITPub博客

首页 > 数据库 > 数据库开发技术 > key redis 分析键数量

key redis 分析键数量

原创 数据库开发技术 作者:后端Q 时间:2023-10-06 09:50:54 0 删除 编辑

Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库。


Redis的全称是 Remote Dictionary Server,它是一款开源的高性能的NoSQL数据库,它可以用作数据库、缓存和消息队列。


有的时候需要统计一下Redis中Key的数量


Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值


命令方式

zb@zb-computer:/home/wwwroot/default/lion/Admin$ /usr/local/redis/bin/redis-cli127.0.0.1:6379> keys *1) "CAOMALL_doctor::13391840644"  keys *

分析键数量对应c# 方法



 /// <summary>        /// 分析键数量        /// </summary>        /// <param name="level">分级,计算不同级别的键数量</param>        /// <returns>不同模板的键数量</returns>        public static List<Dictionary<string, long>> AnalyzeKeyQuantity(int level)        {            return Manager.AnalyzeKeyQuantity(level);        }


   /// <summary>        /// 分析键数量        /// </summary>        /// <param name="level">分级,计算不同级别的键数量</param>        /// <returns>不同模板的键数量</returns>        public List<Dictionary<string, long>> AnalyzeKeyQuantity(int level)        {            var result = new List<Dictionary<string, long>>();            for (int i = 0; i < level; i++)            {                result.Add(new Dictionary<string, long>(500));            }            IEnumerable<string> allKeys = null;            using (var client = GetClient())            {                allKeys = client.ScanAllKeys("*", int.MaxValue);            }            foreach (var key in allKeys)            {                var splitItems = key.Split(new char[] { '_' }, level + 1);                for (int i = 0; i < splitItems.Length - 1; i++)                {                    var templateItems = new List<string>();                    for (int j = 0; j <= i; j++)                    {                        templateItems.Add(splitItems[j]);                    }                    string keyTemplate = string.Join("_", templateItems);
if (!string.IsNullOrWhiteSpace(keyTemplate)) { var dict = result[i]; if (dict.ContainsKey(keyTemplate)) { dict[keyTemplate] += 1; } else { dict.Add(keyTemplate, 1L); } } } } return result; }


原文作者:后端Q;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-01-22

  • 博文量
    1540
  • 访问量
    726049