zoukankan      html  css  js  c++  java
  • Redis常用数据类型及命令

    Redis数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    注意:

    命令的关键词,如set,get,lpush,zadd等不区分大小写。。

    但是key一定要注意区分大小写。

    String(字符串)

    通过 set 设置 key对应的value,再通过get获取key对应的value。

    test:0>set name  "lin"
    OK
    
    test:0>get name
    "lin"

    Hash(哈希)

    Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。

    此命令会覆盖哈希表中已存在的字段。

    如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作。

    hmset的基本语法如下:

    HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN  

    如果只设置一个field,则使用hset,如下:

    HSET KEY_NAME FIELD VALUE 

    获取存储在哈希表中指定字段的值,如下:

    HGET key field

    示例如下:

    test:0>hmset myhashkey field1 "hello" field2 "world"
    OK
    
    test:0>hget myhashkey field1
    "hello"
    
    test:0>hget myhashkey field2
    "world"

    test:0>hgetall myhashkey
    field1
    "hello"
    field2
    "world"


     List(列表)

    list添加数据如下:

    LPUSH key value1 [value2]      将一个或多个值插入到列表头部

    list遍历数据如下:

    Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

    LRANGE KEY_NAME START END

    lpush l是left,也就是从左边开始添加。需要注意的是,继续从左边添加数据,已添加的数据会向右移。

    因此,遍历时的顺序与插入时的顺序相反。

    (rpush r是right,也就是从右边开始添加。)

    list移除数据如下:

    Lpop 命令用于移除并返回列表的第一个元素。

    Lpop KEY_NAME 

    示例如下:

    test:0>lpush order order1
    1
    
    test:0>lpush order order2
    2
    
    test:0>lpush order order3
    3
    
    
    test:0>lrange order 0 2
    order3
    order2
    order1

    test:0>lpop order
    order3

    test:0>lrange order 0 2
    order2
    order1

     Set(集合)

    Redis的Set是string类型的无序不重复的集合。

    sadd 命令:添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。

    如果添加多个元素,那么就会返回元素的个数。

    sadd key 元素1 元素2 元素3 ...

    smembers命令:遍历set集合

    smembers key

    示例如下:

    test:0>sadd mySet "redis"
    1
    
    test:0>sadd mySet "mongodb"
    1
    
    test:0>sadd mySet "couchdb"
    1
    
    //因为元素"couchdb"已经存在,所以无法再次添加,返回结果0. test:
    0>sadd mySet "couchdb" 0
    //遍历集合 test:
    0>smembers mySet "couchdb" "mongodb" "redis"
    //添加多个元素的示例如下:
    test:0> sadd set-test  c java c++
    (integer) 3
    
    

    zset(sorted set:有序集合)

    Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

    zset的成员是唯一的,但分数(score)却可以重复。

    zadd 命令:添加元素到集合,元素在集合中存在则更新对应score

    zadd key score 元素内容 

    注意:命令的关键词,如zadd等不区分大小写。。但是key一定要注意区分大小写。

    示例如下:

    test:0>zadd  myZSet 0 "spring"
    1
    
    test:0>zadd  myZSet 0 "springboot"
    1
    
    test:0>zadd  myZSet 1 "mybatis"
    1
    
    --注意:key要区分大小写。以下的myzset写错了,所以查不出结果 test:
    0>zrangebyscore myzset 0 1 test:0>zrangebyscore myZSet 0 1 "spring" "springboot" "mybatis" test:0>
  • 相关阅读:
    【基础算法】- 全排列
    【基础算法】- 2分查找
    区块链培训
    Static Binding (Early Binding) vs Dynamic Binding (Late Binding)
    test
    No data is deployed on the contract address!
    "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
    京都行
    Failed to write genesis block: database already contains an incompatible
  • 原文地址:https://www.cnblogs.com/expiator/p/9396889.html
Copyright © 2011-2022 走看看