现在位置首页 / 产品设计 /正文

Redis学习笔记 List类型及C#调用(二)

作者: 春暖花开 | 2015年1月12日| 热度:℃ | 评论: |参与:


  List 类型的命令及应用


Redis学习笔记  各篇幅目录,热乎乎出炉,欢迎点击



7

  llen key

返回key的长度。 key不存在,返回0。 如果key 不是列表类型,返回错误。

示例:rpush keylistLlen "content1" "content2" //创建一个key
llen keylistLlen   //返回 2

如图:3-1-7


C#:

//方法:  
   public long LLen(string listId);
//实现
  using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            {
         key = "keylistLlen_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.LPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("test llen str1"), 
                    Encoding.UTF8.GetBytes("test llen str2"), 
                    Encoding.UTF8.GetBytes("test llen str3")
                });
                long lens = redisClient.LLen(key);
  }


8

 lpop key

 移除列表第一个元素。并返回这个被移除的元素。当 key 不存在时,返回<nil> 。

示例:

rpush keylistlpop 'test lpop str1' 'test lpop str2'
lpop keylistlpop  //test lpop str1

如图:3-1-8

 



C#:

//方法
        public byte[] LPop(string listId);
//实现
using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            {
                //lpop
                string key = "keylistLpop_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("test lpop str1"), 
                    Encoding.UTF8.GetBytes("test lpop str2")
                });
                redisClient.LPop(key);  //"test lpop str2"
            }


9

rpop key

移除列表最后一个元素。并返回这个被移除的元素。当 key 不存在时,返回<nil> 。

示例:
rpush keylistrpop 'test rpop str1' 'test rpop str2'
rpop keylistrpop  //test rpop str2


如图:3-1-9

C#:

//方法
       public byte[] RPop(string listId);
//实现
 using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            {
        //rpop
                key = "keylistRpop_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("test rpop str1"), 
                    Encoding.UTF8.GetBytes("test rpop str2")
                });
                redisClient.RPop(key);  //"test rpop str1"
            }



10、

lrange key start stop

返回列表key中指定区间内的元素。start 0--表示第一个,1-表示第二个... stop -1 最后一个元素 -2 表示倒数第二个元素
示例:

   rpush keylistlrange 'list1' 'list2' 'list3'
   lrange keylistlrange 0 -1  //全部的记录
   lrange keylistlrange 1 2  //list2 list3


如图:3-1-10



C#:

//方法 
  public byte[][] LRange(string listId, int startingFrom, int endingAt);
//实现
 using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            { 
        key = "keylistLrange_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("list1"), 
                    Encoding.UTF8.GetBytes("list2"),
                     Encoding.UTF8.GetBytes("list3")
                });
                redisClient.LRange(key, 1, 2);  //list2 list3
            }


11、

lrem key count value

删除count个列表中值为value的元素。
count > 0,从表头向表尾搜索,删除count个。
count < 0,从表尾向表头搜索,删除count的绝对值个。
count = 0,移除表中所有value相等的值。
返回值:被移除的数量,如果 key不存在,返回0。

示例:

   rpush keylistlrem 'abc' 'xyz' 'hgj' 'a123' 'xyz' 'a'
   lrem keylistlrem 1 'xyz'  //1
   lrange keylistlren 0 -1  // 'abc' 'hgj' 'a123' 'xyz' 'a'

如图:3-1-11



C#:

//方法
     public long LRem(string listId, int removeNoOfMatches, byte[] value);
//实现
 using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            { 
          key = "keylistLrem_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("abc"), 
                    Encoding.UTF8.GetBytes("xyz"),
                     Encoding.UTF8.GetBytes("wer"),
                      Encoding.UTF8.GetBytes("xyz"),
                       Encoding.UTF8.GetBytes("0123")
                });
                redisClient.LRem(key, 1, Encoding.UTF8.GetBytes("xyz"));  //1
    }


12、

lset key index value

将列表key 下标为index的元素设置为 value。
返回值:ok
   如果对不存在的key操作,返回:(error) ERR no such key
   如果 index 超出范围,(error) Err index out of range
示例:

    lpush keylistlset 'first'  //创建一个list key
    lset keylistlset 0 'second' //index 为 0的元素 改为 'second'

如图:3-1-12




C#:

//方法
   public void LSet(string listId, int listIndex, byte[] value);
 //实现
 using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            { //lset
                key = "keylistLset_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("First")});
                redisClient.LSet(key, 0, Encoding.UTF8.GetBytes("EditedFirst")); //index 为 0 的元素的值改为 EditedFirst
    }


13、

ltrim key start stop

保留区间内的元素,删除区间外的元素。
返回值:ok
start > stop ,清空整个列表。


 示例如图: 3-1-13



C#:

//方法
        public void LTrim(string listId, int keepStartingFrom, int keepEndingAt);
   //实现
 using (RedisClient redisClient = new RedisClient("127.0.0.1", 6379, null, 1))
            {
                //ltrim
                key = "keylistLtrim_C#";
                if (redisClient.ContainsKey(key)) redisClient.Del(key); //先删掉这个key
                redisClient.RPush(key, new byte[][] { 
                    Encoding.UTF8.GetBytes("aa"),
                Encoding.UTF8.GetBytes("bb"),
                Encoding.UTF8.GetBytes("cc"),
                Encoding.UTF8.GetBytes("dd"),
                Encoding.UTF8.GetBytes("ee"),
                Encoding.UTF8.GetBytes("ff"),
                Encoding.UTF8.GetBytes("gg")
                });
                redisClient.LTrim(key, 1, 4);  // bb cc dd ee
}

-------------------------------

完成C# Demo下载 :http://pan.baidu.com/s/1hqH0Cg0


点击阅读本文所属分类的更多文章: 产品设计 。和高手一起交流:346717337

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询