zoukankan      html  css  js  c++  java
  • Redis学习

    Redis的数据结构:

    1,字符串:键名-string

    用法:

    1 127.0.0.1:6379> get username
    2 (nil)
    3 127.0.0.1:6379> set username user
    4 OK
    5 127.0.0.1:6379> get username
    6 "user"
    7 127.0.0.1:6379> del username
    8 (integer) 1

    2,链表:键名-list

    用法:

    1 127.0.0.1:6379> rpush list-key item1 item2                  
    2 (integer) 2                                                 
    3 
    4 127.0.0.1:6379> lrange list-key 0 -1                        
    5 1) "item1"                                                  
    6 2) "item2"                                                  

    rpush向为key为list-key加入元素item1,item2两个元素,为一个列表,用lrange list-key 0 -1,0代表第一个下标,-1为最后一个下标。意思就是第一个到最后一个元素,比如说:

    1 127.0.0.1:6379> rpush list-key item3
    2 (integer) 3
    3 
    4 127.0.0.1:6379> lrange list-key 0 -1
    5 1) "item1"
    6 2) "item2"
    7 3) "item3"

    在列表中,可以使用lindex查询指定下标的元素:

    1 127.0.0.1:6379> lrange list-key 0 -1
    2 1) "item1"
    3 2) "item2"
    4 3) "item3"
    5 127.0.0.1:6379> lindex list-key 1
    6 "item2"

    下标从是从0开始的,所以1是第二个元素。

    使用lpop弹出一个元素:

     1 127.0.0.1:6379> lrange list-key 0 -1
     2 1) "item1"
     3 2) "item2"
     4 3) "item3"
     5 4) "item4"
     6 127.0.0.1:6379> lpop list-key
     7 "item1"
     8 127.0.0.1:6379> lrange list-key 0 -1
     9 1) "item2"
    10 2) "item3"
    11 3) "item4"

    这个命令可以弹出列表的首元素。首元素为item1,所以操作了这个命令会返回item1并在列表中去除这个元素,可以把这个列表理解为一个队列

    3,集合Set

    Set是集合,和list不同之处在于,set只能存储不同的元素。

    可以使用sadd来想一个key中添加元素,格式为key  value比如:

    1 127.0.0.1:6379> sadd set-key item1
    2 (integer) 1
    3 127.0.0.1:6379> sadd set-key item2
    4 (integer) 1
    5 127.0.0.1:6379> sadd set-key item3
    6 (integer) 1

    使用smembers查看添加的所有元素

    1 127.0.0.1:6379> smembers set-key
    2 1) "item3"
    3 2) "item2"
    4 3) "item1"

    可以查出这个key中的所有元素,显示的顺序和添加的相反。这个时候我们在添加一个原来已经添加过的值。

    1 127.0.0.1:6379> sadd set-key item1
    2 (integer) 0
    3 127.0.0.1:6379> smembers set-key
    4 1) "item3"
    5 2) "item2"
    6 3) "item1"

    并没有出现这个值,说明set中存的内容是互不相同的。

    还可以通过sismember查看这个元素是否在set中,比如:

    1 127.0.0.1:6379> sismember set-key item3
    2 (integer) 1
    3 127.0.0.1:6379> sismember set-key item4
    4 (integer) 0

    存在的返回1,不存在返回0。接下来是删除元素,使用srem删除元素:

    1 (integer) 0
    2 127.0.0.1:6379> srem set-key item1
    3 (integer) 1
    4 127.0.0.1:6379> srem set-key item
    5 (integer) 0

    这个命令会返回删除所影响的元素,0的时候是不影响,意思就是删除失败或者没有这个元素可以删除。

    1 127.0.0.1:6379> smembers set-key
    2 1) "item3"
    3 2) "item2"

    4,散列 就是哈希表

    散列实际上及时key-value的映射,就是个简单版的redis,向散列中添加只得方式是:

    1 127.0.0.1:6379> hset hash-key key1 n1
    2 (integer) 1
    3 127.0.0.1:6379> hset hash-key key2 n2
    4 (integer) 1
    5 127.0.0.1:6379>

    然后可以查看hgetall是查询整个key为hash-key的散列key和value值,hget是查询特定的key对应的值:

    127.0.0.1:6379> hgetall hash-key
    1) "key1"
    2) "n1"
    3) "key2"
    4) "n2"
    127.0.0.1:6379> hget hash-key key1
    "n1"

    使用hdel删除

    1 127.0.0.1:6379> hdel hash-key key1
    2 (integer) 1
    3 127.0.0.1:6379> hgetall hash-key
    4 1) "key2"
    5 2) "n2"

    删除了对应的key和value值。

    5,有序集合zset

    有序集合和hash的存储格式类似,会根据有序集合的值进行排序,值被称为分值,为浮点类型。向zset中添加元素的命令为:zadd

    1 127.0.0.1:6379> zadd zset-key 100 member1
    2 (integer) 1
    3 127.0.0.1:6379> zadd zset-key 99 member0
    4 (integer) 1
    5 127.0.0.1:6379> zadd zset-key 101 member2
    6 (integer) 1

    现在查看一下结果,使用zrange命令,这个命令和lrange一样:

    1 127.0.0.1:6379> zrange zset-key 0 -1
    2 1) "member0"
    3 2) "member1"
    4 3) "member2"

    已经排好序了。还可以查看详情 zrange zset-key 0 -1 withscores:

    1 127.0.0.1:6379> zrange zset-key 0 -1 withscores
    2 1) "member0"
    3 2) "99"
    4 3) "member1"
    5 4) "99"
    6 5) "member2"
    7 6) "101"

     可以查询某个区间内的元素zrangebyscore 下面的命令是查看0-90和0-99的区间:

    1 127.0.0.1:6379> zrangebyscore zset-key  0 90 withscores
    2 (empty list or set)
    3 127.0.0.1:6379> zrangebyscore zset-key  0 99 withscores
    4 1) "member0"
    5 2) "99"
    6 3) "member1"
    7 4) "99"
    8 127.0.0.1:6379>

    删除zset的命令

    1 127.0.0.1:6379> zrem zset-key member0
    2 (integer) 1
    3 127.0.0.1:6379> zrem zset-key member0
    4 (integer) 0
    5 127.0.0.1:6379>

    这个命令会返回影响的行数,如果此行存在并且被删除,则返回1,否则返回0。

    1 127.0.0.1:6379> zrange zset-key 0 -1 withscores
    2 1) "member1"
    3 2) "99"
    4 3) "member2"
    5 4) "101"
    6 127.0.0.1:6379>

    这样就少了一条记录。

    以上就是Redis的基本命令,最后全部删除之前操作的数据!

    1 flushall
  • 相关阅读:
    L1-018 大笨钟 (10分)
    L1-017 到底有多二 (15分)
    L1-016 查验身份证 (15分)
    L1-015 跟奥巴马一起画方块 (15分)
    L1-014 简单题 (5分)
    L1-013 计算阶乘和 (10分)
    L1-012 计算指数 (5分)
    L1-011 A-B (20分)
    L1-010 比较大小 (10分)
    L1-009 N个数求和 (20分)
  • 原文地址:https://www.cnblogs.com/Summer7C/p/5843179.html
Copyright © 2011-2022 走看看