예제 #1
0
        public string[] Union(params string[] sets)
        {
            List <string> args = new List <string>();

            args.Add(_name);
            args.AddRange(sets);

            return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.SUNION, args.ToArray())));
        }
 //
 public string[] this[string pattern]
 {
     get
     {
         return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.KEYS, pattern)));
     }
 }
예제 #3
0
        public oKey(RedisDataAccessProvider redis, string s)
        {
            string[] a = s.Split(new char[] { '#', '.' });

            this.key_full = s;
            this.key0     = a[0];
            this.level    = 0;

            if (a.Length > 1)
            {
                this.key1  = a[1];
                this.level = 1;
            }

            if (a.Length > 2)
            {
                this.key2  = a[2];
                this.level = 2;
            }

            if (a.Length > 3)
            {
                this.key3  = a[3];
                this.level = 3;
            }

            try
            {
                string[] ks = redis.ReadMultiString(redis.SendCommand(RedisCommand.HKEYS, s));
                this.keys_last = ks.OrderBy(x => x).ToArray();
            }
            catch (Exception e)
            {
            }
        }
예제 #4
0
        public string[] Get(params string[] keys)
        {
            List <string> args = new List <string>();

            args.Add(_name);
            args.AddRange(keys);

            return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.HMGET, args.ToArray())));
        }
예제 #5
0
 public string[] Commit()
 {
     return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.EXEC)));
 }
 public string[] Range(int startindex, int endindex)
 {
     return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.LRANGE, _name, startindex.ToString(), endindex.ToString())));
 }
 public string[] IncrementBy(string member, int incrementvalue)
 {
     return(_provider.ReadMultiString(_provider.SendCommand(RedisCommand.ZINCRBY, _name, incrementvalue.ToString(), member)));
 }
예제 #8
0
        void f_load(bool cache_selected = false)
        {
            f_message();

            treeKeys.Nodes.Clear();
            listKeys.Items.Clear();
            lblKeyID_Selected.Text = "";
            lblKeyID_Counter.Text  = "";

            string key_full_selected = "";

            if (cache_selected && m_key_selected != null)
            {
                key_full_selected = m_key_selected.key_full;
            }

            try
            {
                m_redis = new RedisDataAccessProvider();
                m_redis.Configuration = new Configuration()
                {
                    Host = txtIP.Text.Trim(), Port = Convert.ToInt16(txtPort.Text.Trim())
                };
                m_redis.Connect();

                string[] keys = m_redis.ReadMultiString(m_redis.SendCommand(RedisCommand.KEYS, "*"));
                m_keys = keys.Select(x => new oKey(m_redis, x)).ToArray();

                var keys_0 = keys.Select(x => x.Split(new char[] { '#', '.' }))
                             .Select(x => x[0]).Distinct().OrderBy(x => x).ToArray();

                TreeNode[] nodes_0 = new TreeNode[keys_0.Length];
                for (var i = 0; i < keys_0.Length; i++)
                {
                    string key_0 = keys_0[i];
                    nodes_0[i] = new TreeNode(key_0);

                    var okeys_1 = m_keys.Where(x => x.key_full.StartsWith(key_0 + "#") ||
                                               x.key_full.StartsWith(key_0 + ".")).OrderBy(x => x.key_full).ToArray();
                    string[] keys_1 = okeys_1.Select(x => x.key_full.Split(new char[] { '#', '.' })[1]).Distinct().OrderBy(x => x).ToArray();
                    if (keys_1.Length == 0)
                    {
                        nodes_0[i].Tag = new oKey()
                        {
                            key0 = key_0, level = 0
                        };
                    }
                    else
                    {
                        for (var i1 = 0; i1 < keys_1.Length; i1++)
                        {
                            string key_1   = keys_1[i1];
                            var    nodes_1 = new TreeNode(key_1);
                            nodes_0[i].Nodes.Add(nodes_1);

                            var okeys_2 = m_keys.Where(x => (x.key_full.StartsWith(key_0 + "#") || x.key_full.StartsWith(key_0 + ".")) &&
                                                       (x.key_full.Contains(key_1 + "#") || x.key_full.Contains(key_1 + "."))).OrderBy(x => x.key_full).ToArray();
                            string[] keys_2 = okeys_2.Select(x => x.key_full.Split(new char[] { '#', '.' })[2]).Distinct().OrderBy(x => x).ToArray();
                            if (keys_2.Length == 0)
                            {
                                nodes_1.Tag = new oKey()
                                {
                                    key0 = key_0, key1 = key_1, level = 1
                                };
                            }
                            else
                            {
                                for (var i2 = 0; i2 < keys_2.Length; i2++)
                                {
                                    string key_2   = keys_2[i2];
                                    var    nodes_2 = new TreeNode(key_2)
                                    {
                                        Tag = new oKey()
                                        {
                                            key0 = key_0, key1 = key_1, key2 = key_2, level = 2
                                        }
                                    };
                                    nodes_1.Nodes.Add(nodes_2);
                                }
                            }
                        }
                    }
                }
                treeKeys.Nodes.AddRange(nodes_0);
                //f_message("OK");
                //Thread.Sleep(100);
                treeKeys.ExpandAll();
                //Thread.Sleep(100);
                if (key_full_selected.Length > 0)
                {
                    CallRecursive(key_full_selected);
                }
            }
            catch (Exception err)
            {
                f_message("FAIL: " + err.Message);
            }
        }