Redis 3.0中文版学习(二)

网址:http://wiki.jikexueyuan.com/project/redis-guide/entry-to-master-middle.html

1.Redis的列表: 采用链表的实现方法,考虑到在一个很长的队列要快速的插入一个元素。列表可以在常数的时间内获取到列表的长度。

2.Redis的列表没有元素可以弹出时,返回nil。

3.列表的通用场景:

  1)记住社交网络的中用户的最近提交的更新。

  2)生产消费者模式。

4.LTRIM : 只记住最新的N项。范围外的数据都被删除。

  eg:LTRIM  0  2

5.LRANGE : 时间复杂度O(n),访问列表的头尾附近小范围是常量的时间操作。

6.列表的阻塞操作 :BRPOP 和 BLPOP。RPOP和LPOP的阻塞版本。 

  eg:BRPOP tasks  5     (等待 tasks 列表中的元素,如果 5 秒后还没有可用元素就返回,0为一直等待)

  BRPOP的一些注意的事项:

    1)客户端按顺序服务:第一个被阻塞的客户端,第一个收到其他客户端添加的元素。

    2)与RPOP不同,返回的是一个数组,包括键的名字,因为BRPOP和BLPOP可以阻塞等待多个队列。

    3)超时返回NULL。

7. 从聚合类型删除一个元素,如果值为空,则键也会被销毁。

8. Redis的哈希和散列(Hashes)

  1)hmset   hkey    key1  value1 key2 value2 ...    --  可以容易的存储对象,没有字段的限制。

  2)hmget hkey  key   --  取出"对象"的相应属性的值,如果没有该属性,返回nil。

  3)hincrby hkey key  incr_value  -- 增加对象属性的值

9.集合:

  1) sadd -- 加入集合。

  2) smember -- 返回集合的所有成员。

  3) sismember -- 测试一个元素是不是集合的成员。

  4)sinter -- 对不同的集合之行交集的操作。

  5) spop --  随机删除集合的一个元素,并返回该元素。

  6) sunionstore -- 对多个集合执行交集,然后把结果存储到另一个集合。如果是对自身的操作,相当于拷贝。

  eg :sunionstore copy set1   -- 把set1集合的元素拷贝到copy集合。

  7)scard -- 返回集合元素的数量。

  8)srandmember -- 随机返回集合中的一个元素,但是不删除。

posted @ 2017-03-08 15:11  GoodByeZ  阅读(143)  评论(0编辑  收藏  举报