美文网首页
渣翻Redis 基础命令学习(下)

渣翻Redis 基础命令学习(下)

作者: 杨酥饼 | 来源:发表于2017-05-03 19:00 被阅读0次

    http://try.redis.io/
    这篇介绍Redis常用的几种数据类型。

    数组

    redis可以保存许多复杂结构,数组是其中之一,数组可以保存一系列元素。常用的操作符有RPUSH, LPUSH, LLEN, LRANGE, LPOP, 和 RPOP。容易看出这是个双端队列,左右都可以进出。插入元素用例:

    RPUSH friends "Alice"
    RPUSH friends "Bob"
    LPUSH friends "Sam"
    

    LRANGE用来获取数组元素,使用用例:

    LRANGE friends 0 -1 => 1) "Sam", 2) "Alice", 3) "Bob"
    LRANGE friends 0 1 => 1) "Sam", 2) "Alice"
    LRANGE friends 1 2 => 1) "Alice", 2) "Bob"
    

    Redis 没有提供直接的反转功能,LRANGE只能从左到右取出元素。

    LLEN是用来获取数组长度, 使用样例:

    LLEN friends => 3
    LPOP friends => "Sam"
    RPOP friends => "Bob"
    LLEN friends => 1
    LRANGE friends 0 -1 => 1) "Alice"
    

    LLEN 返回了 friends 的长度 3,LPOP和RPOP分别是用来在数组的两端POP的(POP指读出数据,并且删除)。

    集合

    集合是一种类似于数组的结构,但集合是无序的,且集合中每个元素唯一。集合中比较重要的操作符有SADD, SREM, SISMEMBER, SMEMBERS, SUNION.
    SADD 用来往集合中增加值:

    SADD superpowers "flight"
    SADD superpowers "x-ray vision"
    SADD superpowers "reflexes"
    

    SREM 删除集合中的值:

    SREM superpowers "reflexes"
    

    SISMEMBER 用来判断给定值是否在集合中:

    SISMEMBER superpowers "flight" => 1
    SISMEMBER superpowers "reflexes" => 0
    

    SMEMBERS 用来获取集合的所有值:

    SMEMBERS superpowers => 1) "flight", 2) "x-ray vision"
    

    SUNIOR 用来求两个集合的并集:

    SADD birdpowers "pecking"
    SADD birdpowers "flight"
    SUNION superpowers birdpowers => 1) "pecking", 2) "x-ray vision", 3) "flight"
    

    有序集合

    集合非常好用,但是他是无序的。不过redis也支持有序集合:

    ZADD hackers 1940 "Alan Kay"
    ZADD hackers 1906 "Grace Hopper"
    ZADD hackers 1953 "Richard Stallman"
    ZADD hackers 1965 "Yukihiro Matsumoto"
    ZADD hackers 1916 "Claude Shannon"
    ZADD hackers 1969 "Linus Torvalds"
    ZADD hackers 1957 "Sophie Wilson"
    ZADD hackers 1912 "Alan Turing"
    

    key之后的数字就是排序的分值,可以用ZRANGE来取出一个序列:

    ZRANGE hackers 2 4 => 1) "Claude Shannon", 2) "Alan Kay", 3) "Richard Stallman"
    

    哈希表

    哈希表是redis用来存储复杂数据结构,他代表多个键值对映射的集合,非常适合来表示对象:

    HSET user:1000 name "John Smith"
    HSET user:1000 email "john.smith@example.com"
    HSET user:1000 password "s3cret"
    

    使用HGETALL获得这个某个哈希表的所有域值对:

    HGETALL user:1000
    

    使用HMSET可以一次设定多个键值:

    HMSET user:1001 name "Mary Jones" password "hidden" email "mjones@example.com"
    

    如果只需要取得表中单个域的值,使用HGET:

    HGET user:1001 name => "Mary Jones"
    

    改变哈希表的域的值处理方式和一般的的字符串类似,以及提供改变数值的原子操作符:

    HSET user:1000 visits 10
    HINCRBY user:1000 visits 1 => 11
    HINCRBY user:1000 visits 10 => 21
    HDEL user:1000 visits
    HINCRBY user:1000 visits 1 => 1
    

    相关文章

      网友评论

          本文标题:渣翻Redis 基础命令学习(下)

          本文链接:https://www.haomeiwen.com/subject/wkdltxtx.html